I built an image with armlink using a scatter file. I used the --symdefs option and a steering file to export all public symbols that are in my image and that I want other code to have access to. In my code I reference some of the linker-defined symbols that match to regions defined in my scatter file (Image$$mysectionname$$ZI$$Base etc...). This works fine and I do see the linker-defined symbols with their values appear in the generated map file. But what I want is to output these linker-defined symbols also to the --symdefs symbol file, but whatever I tried fails. Does anyone know how to do this?
Does such a concept even work. Can you rebuild your application/library/whatever and after changes to the code still get every single exported symbol stay at the same fixed location?
It is common to use jump tables - and possibly a single fixed-located function to return the address of the jump table, just to avoid the need to create many small segments with spare space so that each exported function can start at a fixed location and have room to grow a bit without pushing the next function forward.
My image will (but does not yet) use a single fixed entry point. The start of code & ram segments is fixed also. For legal constraints I can not distribute an axf, but only a hex file and a symbol file to customers. But the code size & global ram size might vary from release to release. I was hoping to have a simple automated way of communicating the rom & ram segment sizes to customers and the symbol file would be a convenient way of doing it.