Making a program fit


I’m using the RCM3000 under 9.25, when I try to compile under 9.62, the program doesn’t fit anymore. How can I figure out how much I have to trim?

Is there a way to tell the compiler to go ahead and compile anyways regardless of memory size? This way the map file will tell me how much I’m over by.

If I remove my TCP task I can compile, now I’m sure there is some code that can get trimmed down a bit, but I’d hate to go to the trouble only to find out it wouldn’t fit anyways.

I would like to use 9.62 if I can.


Your best bet is probably to stub out some of the code until it fits and try to make an estimate of how much extra is needed to fit it back in e.g. if you stub out Function A and it fits and you stub out Function B and it fits you can figure out the size of Functions A and B from the respective mapfiles. Alternately you may get an estimate of the size difference by loking at the mapfile from 9.25 to see how much each of your functions contributes (the failure to fit is probably mostly down to the DC libs being bigger).

Once you have something that builds at all you can look and see what you can do to reduce size.

Another thing, building a non debug version of the code may help as the debug single step RST instructions add quite a bit to the overall size.

i generally find that if the code has been written without hitting the memory limits to date that there is quite a bit of scope for refactoring to reduce the code size. If on the other hand the code has alread been heavily optimised to squeeze it in you will have a harder job reducing the footprint.