Hi ,
I'm working on Cortex M3/4 wit SES and I should have access to the real image size, i.e. start address and end address.
Start address will almost always (except on an applications with booloader for example) 0x8000000, the end depends on the length of the application.
Formerly in GNU LD this sequence was sufficient in the linker file:
Display All
where __StartOfImage contained the start address and __EndOfImage the end address respectivly, which both were accessible from the application via a simple variable access.
How can I do this with the Segger linker?
73 de Kai DL1GJJ
I'm working on Cortex M3/4 wit SES and I should have access to the real image size, i.e. start address and end address.
Start address will almost always (except on an applications with booloader for example) 0x8000000, the end depends on the length of the application.
Formerly in GNU LD this sequence was sufficient in the linker file:
Source Code
- .text :
- {
- __StartOfImage = .;
- _ISR_Vector = .; /* this symbol is needed to give us a chance to remap the program */
- /* Startup code */
- KEEP(*(.isr_vector))
- /* Code section */
- *(.text*)
- KEEP(*(.init))
- KEEP(*(.fini))
- /* .ctors */
- *crtbegin.o(.ctors)
- *crtbegin?.o(.ctors)
- *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
- *(SORT(.ctors.*))
- *(.ctors)
- /* .dtors */
- *crtbegin.o(.dtors)
- *crtbegin?.o(.dtors)
- *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
- *(SORT(.dtors.*))
- *(.dtors)
- /* Rodata section (constants, strincs, ...) */
- *(.rodata*)
- KEEP(*(.eh_frame*))
- __EndofImage = .;
- } > FLASH
where __StartOfImage contained the start address and __EndOfImage the end address respectivly, which both were accessible from the application via a simple variable access.
How can I do this with the Segger linker?
73 de Kai DL1GJJ