linker scripts: add symbols for ROM/RAM boundaries
These symbols have more meaningful names when trying to figure out where the ROM/RAM starts/ends, rather than relying on e.g. __data_rom_start for the end of the ROM (__data_rom_start is the beginning of the data in ROM, thus is not part of the image). Change-Id: I4aa0354ee414fd0d46d0f40952e091ba090e7bce Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
This commit is contained in:
parent
f80bc35d58
commit
09303f7f68
3 changed files with 16 additions and 0 deletions
|
@ -65,6 +65,8 @@ SECTIONS
|
||||||
{
|
{
|
||||||
GROUP_START(ROMABLE_REGION)
|
GROUP_START(ROMABLE_REGION)
|
||||||
|
|
||||||
|
_image_rom_start = CONFIG_FLASH_BASE_ADDRESS;
|
||||||
|
|
||||||
SECTION_PROLOGUE(_TEXT_SECTION_NAME,,)
|
SECTION_PROLOGUE(_TEXT_SECTION_NAME,,)
|
||||||
{
|
{
|
||||||
KEEP(*(.exc_vector_table))
|
KEEP(*(.exc_vector_table))
|
||||||
|
@ -133,6 +135,7 @@ SECTIONS
|
||||||
*(".rodata.*")
|
*(".rodata.*")
|
||||||
} GROUP_LINK_IN(ROMABLE_REGION)
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
||||||
|
|
||||||
|
_image_rom_end = .;
|
||||||
__data_rom_start = ALIGN(4); /* XIP imaged DATA ROM start addr */
|
__data_rom_start = ALIGN(4); /* XIP imaged DATA ROM start addr */
|
||||||
|
|
||||||
GROUP_END(ROMABLE_REGION)
|
GROUP_END(ROMABLE_REGION)
|
||||||
|
@ -145,6 +148,7 @@ SECTIONS
|
||||||
SECTION_PROLOGUE(_DATA_SECTION_NAME,,)
|
SECTION_PROLOGUE(_DATA_SECTION_NAME,,)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
_image_ram_start = .;
|
||||||
__data_ram_start = .;
|
__data_ram_start = .;
|
||||||
*(.data)
|
*(.data)
|
||||||
*(".data.*")
|
*(".data.*")
|
||||||
|
@ -244,6 +248,7 @@ SECTIONS
|
||||||
|
|
||||||
/* Define linker symbols */
|
/* Define linker symbols */
|
||||||
|
|
||||||
|
_image_ram_end = .;
|
||||||
_end = .; /* end of image */
|
_end = .; /* end of image */
|
||||||
__bss_num_words = (__bss_end - __bss_start) >> 2;
|
__bss_num_words = (__bss_end - __bss_start) >> 2;
|
||||||
|
|
||||||
|
|
|
@ -63,8 +63,11 @@ SECTIONS
|
||||||
{
|
{
|
||||||
GROUP_START(ROMABLE_REGION)
|
GROUP_START(ROMABLE_REGION)
|
||||||
|
|
||||||
|
_image_rom_start = PHYS_LOAD_ADDR;
|
||||||
|
|
||||||
SECTION_PROLOGUE(_TEXT_SECTION_NAME, (OPTIONAL),)
|
SECTION_PROLOGUE(_TEXT_SECTION_NAME, (OPTIONAL),)
|
||||||
{
|
{
|
||||||
|
|
||||||
*(.text_start)
|
*(.text_start)
|
||||||
*(".text_start.*")
|
*(".text_start.*")
|
||||||
*(.text)
|
*(.text)
|
||||||
|
@ -110,6 +113,7 @@ SECTIONS
|
||||||
KEXEC_PGALIGN_PAD(MMU_PAGE_SIZE)
|
KEXEC_PGALIGN_PAD(MMU_PAGE_SIZE)
|
||||||
} GROUP_LINK_IN(ROMABLE_REGION)
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
||||||
|
|
||||||
|
_image_rom_end = .;
|
||||||
__data_rom_start = ALIGN(4); /* XIP imaged DATA ROM start addr */
|
__data_rom_start = ALIGN(4); /* XIP imaged DATA ROM start addr */
|
||||||
|
|
||||||
GROUP_END(ROMABLE_REGION)
|
GROUP_END(ROMABLE_REGION)
|
||||||
|
@ -124,6 +128,7 @@ SECTIONS
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
KEXEC_PGALIGN_PAD(MMU_PAGE_SIZE)
|
KEXEC_PGALIGN_PAD(MMU_PAGE_SIZE)
|
||||||
|
_image_ram_start = .;
|
||||||
__data_ram_start = .;
|
__data_ram_start = .;
|
||||||
*(.data)
|
*(.data)
|
||||||
*(".data.*")
|
*(".data.*")
|
||||||
|
@ -231,6 +236,7 @@ SECTIONS
|
||||||
} GROUP_LINK_IN(RAM)
|
} GROUP_LINK_IN(RAM)
|
||||||
|
|
||||||
/* Define linker symbols */
|
/* Define linker symbols */
|
||||||
|
_image_ram_end = .;
|
||||||
_end = .; /* end of image */
|
_end = .; /* end of image */
|
||||||
|
|
||||||
. = ALIGN(MMU_PAGE_SIZE);
|
. = ALIGN(MMU_PAGE_SIZE);
|
||||||
|
|
|
@ -113,6 +113,11 @@ extern char __data_ram_start[];
|
||||||
extern int __data_num_words[];
|
extern int __data_num_words[];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern char _image_rom_start[];
|
||||||
|
extern char _image_rom_end[];
|
||||||
|
extern char _image_ram_start[];
|
||||||
|
extern char _image_ram_end[];
|
||||||
|
|
||||||
/* end address of image. */
|
/* end address of image. */
|
||||||
extern char _end[];
|
extern char _end[];
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue