You could save some flash by changing the properties of already debugged files (as the generated files are). Right click on the file and set the optimization level to something better than "none".
This you may do with your own modules, too.
Seems like you could build a table of f() pointers and
force their storage to a known location in FLASH and use
them in the bootloadable program as calls. I am thinking
this would have to be done in ASM calls from the bootloadable
to effect the code share.
Would be nice if compiler was "boot" aware......
Not being an expert on BL's will be interesting to see if there are any
Thanks for the replies, I will use the optimizing for now and if I run into memory problems later on I can study the second option.