bsps: Support RTEMS_NOINIT in linkcmds

Update #3866.
This commit is contained in:
Sebastian Huber
2021-04-30 15:47:10 +02:00
parent a84bf966b5
commit e10dec0fe7
62 changed files with 256 additions and 1 deletions

View File

@@ -295,6 +295,10 @@ SECTIONS {
bsp_section_data_size = bsp_section_data_end - bsp_section_data_start;
bsp_section_bss_size = bsp_section_bss_end - bsp_section_bss_start;
.noinit (NOLOAD) : {
*(.noinit*)
} > RAM
.rtemsstack (NOLOAD) : {
*(SORT(.rtemsstack.*))
} > RAM

View File

@@ -250,6 +250,10 @@ SECTIONS
bss.size = bss.end - bss.start;
sbss.size = sbss.end - sbss.start;
.noinit (NOLOAD) : {
*(.noinit*)
} >RAM
.rtemsstack (NOLOAD) : {
*(SORT(.rtemsstack.*))
} >RAM

View File

@@ -93,6 +93,10 @@ LINKER_SYMBOL(bsp_section_rtemsstack_begin)
LINKER_SYMBOL(bsp_section_rtemsstack_end)
LINKER_SYMBOL(bsp_section_rtemsstack_size)
LINKER_SYMBOL(bsp_section_noinit_begin)
LINKER_SYMBOL(bsp_section_noinit_end)
LINKER_SYMBOL(bsp_section_noinit_size)
LINKER_SYMBOL(bsp_section_work_begin)
LINKER_SYMBOL(bsp_section_work_end)
LINKER_SYMBOL(bsp_section_work_size)

View File

@@ -289,6 +289,10 @@ SECTIONS
clear_end = .;
.noinit (NOLOAD) : {
*(.noinit*)
} >ram
.rtemsstack (NOLOAD) : {
*(SORT(.rtemsstack.*))
} >ram

View File

@@ -133,6 +133,7 @@ static entry DATA config[] = {
ENTRY_RW(bsp_section_sbss_begin, bsp_section_sbss_size),
ENTRY_RW(bsp_section_bss_begin, bsp_section_bss_size),
ENTRY_RW(bsp_section_rtemsstack_begin, bsp_section_rtemsstack_size),
ENTRY_RW(bsp_section_noinit_begin, bsp_section_noinit_size),
ENTRY_RW(bsp_section_stack_begin, bsp_section_stack_size),
ENTRY_IO(bsp_section_nocache_begin, bsp_section_nocache_size),
ENTRY_IO(bsp_section_nocachenoload_begin, bsp_section_nocachenoload_size),

View File

@@ -343,6 +343,13 @@ SECTIONS {
} > REGION_RTEMSSTACK AT > REGION_RTEMSSTACK
bsp_section_rtemsstack_size = bsp_section_rtemsstack_end - bsp_section_rtemsstack_begin;
.noinit (NOLOAD) : ALIGN_WITH_INPUT {
bsp_section_noinit_begin = .;
*(.noinit*)
bsp_section_noinit_end = .;
} > REGION_WORK AT > REGION_WORK
bsp_section_noinit_size = bsp_section_noinit_end - bsp_section_noinit_begin;
.work : ALIGN_WITH_INPUT {
/*
* The work section will occupy the remaining REGION_WORK region and

View File

@@ -253,6 +253,9 @@ SECTIONS
. = ALIGN(16);
PROVIDE (__bss_end = .);
} > CODE
.noinit (NOLOAD) : {
*(.noinit*)
} > CODE
.rtemsstack (NOLOAD) : {
*(SORT(.rtemsstack.*))
} >CODE

View File

@@ -233,6 +233,10 @@ SECTIONS
PROVIDE(_end = bss.end);
.noinit (NOLOAD) : {
*(.noinit*)
}
.rtemsstack (NOLOAD) : {
*(SORT(.rtemsstack.*))
}

View File

@@ -252,6 +252,10 @@ SECTIONS
. = ALIGN(0x10); /* Align to a cache-line boundary */
PROVIDE(__bsp_ram_start = .);
.noinit (NOLOAD) : {
*(.noinit*)
} >RAM
.rtemsstack (NOLOAD) : {
*(SORT(.rtemsstack.*))
} >RAM

View File

@@ -252,6 +252,10 @@ SECTIONS
. = ALIGN(0x20); /* Align to a cache-line boundary */
PROVIDE(__bsp_ram_start = .);
.noinit (NOLOAD) : {
*(.noinit*)
} >RAM
.rtemsstack (NOLOAD) : {
*(SORT(.rtemsstack.*))
} >RAM