Tool/software:
Dear TI Support,
I have a question regarding the use of groups and sections in the linker command (.cmd) file.
In my command file, I declared a group that combines two sections that were not explicitly defined elsewhere in the command file. When I create a buffer using the pragma directive #pragma DATA_SECTION(), it seems to work correctly. The buffer data is indeed placed within the defined group, even though the individual sections are only declared within this group.
What surprises me is that I have not explicitly defined the start and end addresses for these sections. Previously, I always assumed that sections needed to have clearly defined addresses, similar to the example below:
RAMGS7 : origin = 0x013000, length = 0x001000
In this code, I attempted to define start and end variables for the ANALOG_TRIM section within the group to track the size utilized by this section. However, it seems that the linker does not accept this approach and generates the following warning:
#10068-D no matching section
Here is the linker code snippet I'm using:
GROUP : LOAD = FLASHN1,
RUN = RAMGS14_1,
LOAD_START(_IdentLoadStart),
LOAD_END(_IdentLoadEnd),
RUN_START(_IdentRunStart),
LOAD_SIZE(_IdentLoadSize),
PAGE = 0, ALIGN(8)
{
SW_IDENTIFICATION : {
_swIdentStart = .; /* Marque le début de SW_IDENTIFICATION */
*(.sw_identification) /* Regroupe les fragments .sw_identification */
*(.sw_identification*) /* Regroupe tous les fragments commençant par .sw_identification */
_swIdentEnd = .; /* Marque la fin de SW_IDENTIFICATION */
}
ANALOG_TRIM : {
_analogTrimStart = .; /* Marque le début de ANALOG_TRIM */
*(.analog_trim) /* Regroupe les fragments .analog_trim */
*(.analog_trim*) /* Regroupe tous les fragments commençant par .analog_trim */
_analogTrimEnd = .; /* Marque la fin de ANALOG_TRIM */
}
}
Could you please clarify why the linker generates this warning, and confirm whether my understanding of section definitions and groupings is correct?
Thank you for your assistance.