The FPU certainly makes floating point arithmetic cheap; the hidden cost is the need to save/restore the FP context (17 words) at every interrupt. Lazy-save helps with this, but if the ISR uses floating point the save will happen sooner or later. I was really trying to make a more general point: Moving code to RAM will indeed reduce current by 30% for the code that is moved (don't forget to find/move sprintf() and its subfunctions as well), but looking at the bigger picture ("Do Less Stuff") will help even more. I have my own opinions about ULP 5.1-3: it seems to me that they recommend fairly drastic fixes for artifacts that most programs can live with just fine (just don't do Too Many of them).
↧