Apologies for the thread title, this is hard to summarize in a single sentence.
Here are my goals. I have a single code base. Part of this code is "boot code," part is "run-time code," and some is "shared code." The shared code consists of particular functions that both the boot code and run-time code use. These shared functions may be present in source files that have functions that are not shared between the boot and run-time code.
I want all of the code used by boot, that is the "boot code" and "shared code," to be present in particular segment of memory. The run-time code is then present in other segments of memory, but I don't want the run-time code to include its own copy of the shared code. I want it to link and use the copy stored with the boot code.
The reason for this setup is that I want to integrity check the code memory at boot, but in phases. First check the boot and shared code, then finish boot activities, then prior to switching from "boot-time" to "run-time," integrity check the run-time code. For speed and management of the integrity check it is important for the boot and shared code to be in contiguous memory together and to not include extra code that only the run-time code needs.
I do not need the TI Linker to generate the integrity check codes.
Is this possible using TI's linker, if so how?