Thanks for the details on the BSPs. A nice mix ![]()
If we put dynamic loading to the side for now an RTEMS executable is a single statically linked image. The addresses and memory map of a BSP’s RTEMS executable is defined by the BSPs linker map and a detail you normally do not need to be concerned about unless working on a BSP.
RTEMS uses some clever linking technology to optimize what ends up in the final image loaded into memory on your target hardware. Only the parts referenced and used end up in the executable down to a function level. This means you could have 100 libraries on you application’s linker command yet of a faction of that code end up in the final image.
I suggest you to read the Building An Application section of the User Manual. In the picture below:
you will see libm in the stdlibs section. Those libraries are built when the tools are built. You do not build libm or libc or any of those system level libraries.
I recently added Separate RSB Configurations and that may help you understand the building of tools and third party libraries.
