The team needed a microcontroller with more memory. Since this was a very high-volume product, moving to a more expensive microcontroller was going to cost $1,000,000+ over the three-year production life-cycle.
We asked the Director of Software Development to give us one month to explore some strategies to reduce the memory usage of the existing code, in order to save the $1M.
We used the maps and data on variable usage produced by the linker. We studied the processor’s addressing modes. Using linker commands we placed the most frequently used variables in the optimum locations in memory, saving many 1000s of bytes of precious space.
In two weeks we were able to eliminate the need to use a more expensive microcontroller, saving the company $1,000,000+. We were given the highest award the department offered in recognition for our contribution.