summaryrefslogtreecommitdiffstats
path: root/bsps
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-12-09 16:03:11 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-02-12 09:08:36 +0100
commit32991495b48d1b5e4804b2f10a67a800f4608e75 (patch)
tree2a05470107f3a8918689b9ed4c94760f08a2631a /bsps
parentscore: Move thread stack allocation (diff)
downloadrtems-32991495b48d1b5e4804b2f10a67a800f4608e75.tar.bz2
score: Statically allocate idle/MPCI stacks
Place idle and MPCI stacks into extra linker sections. This can be optionally used by applications to control the placement of the stacks. Update #3835.
Diffstat (limited to 'bsps')
-rw-r--r--bsps/arm/shared/start/linkcmds.base10
-rw-r--r--bsps/sh/gensh1/start/linkcmds4
-rw-r--r--bsps/sh/gensh2/start/linkcmds4
-rw-r--r--bsps/sh/gensh2/start/linkcmds.ram4
-rw-r--r--bsps/sh/gensh2/start/linkcmds.rom4
5 files changed, 23 insertions, 3 deletions
diff --git a/bsps/arm/shared/start/linkcmds.base b/bsps/arm/shared/start/linkcmds.base
index 8121161e0c..1f5f1ef959 100644
--- a/bsps/arm/shared/start/linkcmds.base
+++ b/bsps/arm/shared/start/linkcmds.base
@@ -261,9 +261,6 @@ SECTIONS {
.vector : ALIGN_WITH_INPUT {
bsp_section_vector_begin = .;
. = . + DEFINED (bsp_vector_table_in_start_section) ? 0 : bsp_vector_table_size;
- } > REGION_VECTOR AT > REGION_VECTOR
- .rtemsstack (NOLOAD) : {
- *(SORT(.rtemsstack.*))
bsp_section_vector_end = .;
} > REGION_VECTOR AT > REGION_VECTOR
bsp_section_vector_size = bsp_section_vector_end - bsp_section_vector_begin;
@@ -313,6 +310,13 @@ SECTIONS {
} > REGION_BSS AT > REGION_BSS
bsp_section_bss_size = bsp_section_bss_end - bsp_section_bss_begin;
+ .rtemsstack (NOLOAD) : ALIGN_WITH_INPUT {
+ bsp_section_rtemsstack_begin = .;
+ *(SORT_BY_ALIGNMENT (SORT_BY_NAME (.rtemsstack*)))
+ bsp_section_rtemsstack_end = .;
+ } > REGION_WORK AT > REGION_WORK
+ bsp_section_rtemsstack_size = bsp_section_rtemsstack_end - bsp_section_rtemsstack_begin;
+
.work : ALIGN_WITH_INPUT {
/*
* The work section will occupy the remaining REGION_WORK region and
diff --git a/bsps/sh/gensh1/start/linkcmds b/bsps/sh/gensh1/start/linkcmds
index 4c2b5e0d77..dc734de8e5 100644
--- a/bsps/sh/gensh1/start/linkcmds
+++ b/bsps/sh/gensh1/start/linkcmds
@@ -187,6 +187,10 @@ SECTIONS
_end = . ;
PROVIDE (end = .);
+ .rtemsstackidle (NOLOAD) : {
+ *(SORT(.rtemsstack.idle*))
+ } > ram
+
_WorkAreaBase = . ;
.rtemsstack (NOLOAD) : {
diff --git a/bsps/sh/gensh2/start/linkcmds b/bsps/sh/gensh2/start/linkcmds
index abc7a494b6..5fd04dba41 100644
--- a/bsps/sh/gensh2/start/linkcmds
+++ b/bsps/sh/gensh2/start/linkcmds
@@ -198,6 +198,10 @@ SECTIONS
_end = . ;
PROVIDE (end = .);
+ .rtemsstackidle (NOLOAD) : {
+ *(SORT(.rtemsstack.idle*))
+ } > ram
+
_WorkAreaBase = . ;
.rtemsstack (NOLOAD) : {
diff --git a/bsps/sh/gensh2/start/linkcmds.ram b/bsps/sh/gensh2/start/linkcmds.ram
index 7a1431889e..4db55f03a8 100644
--- a/bsps/sh/gensh2/start/linkcmds.ram
+++ b/bsps/sh/gensh2/start/linkcmds.ram
@@ -200,6 +200,10 @@ SECTIONS
_end = . ;
PROVIDE (end = .);
+ .rtemsstackidle (NOLOAD) : {
+ *(SORT(.rtemsstack.idle*))
+ } > ram
+
_WorkAreaBase = . ;
.rtemsstack (NOLOAD) : {
diff --git a/bsps/sh/gensh2/start/linkcmds.rom b/bsps/sh/gensh2/start/linkcmds.rom
index c56ff6b033..eb713244f4 100644
--- a/bsps/sh/gensh2/start/linkcmds.rom
+++ b/bsps/sh/gensh2/start/linkcmds.rom
@@ -201,6 +201,10 @@ SECTIONS
_end = . ;
PROVIDE (end = .);
+ .rtemsstackidle (NOLOAD) : {
+ *(SORT(.rtemsstack.idle*))
+ } > ram
+
_HeapStart = . ;
. = . + 1024 * 20 ;
PROVIDE( _HeapEnd = . );