---
 bsps/arm/shared/start/linkcmds.base | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/bsps/arm/shared/start/linkcmds.base 
b/bsps/arm/shared/start/linkcmds.base
index 1f5f1ef959..d0663cf97e 100644
--- a/bsps/arm/shared/start/linkcmds.base
+++ b/bsps/arm/shared/start/linkcmds.base
@@ -81,6 +81,17 @@ SECTIONS {
        } > REGION_TEXT AT > REGION_TEXT_LOAD
        .fini : ALIGN_WITH_INPUT {
                KEEP (*(.fini))
+
+               /*
+                * If requested, align the size of the combined start and text
+                * section to the next power of two to meet MPU region
+                * alignment requirements.
+                */
+               . = DEFINED (bsp_section_do_mpu_align) ?
+                   bsp_section_start_begin
+                   + ALIGN (. - bsp_section_start_begin,
+                   1 << LOG2CEIL (. - bsp_section_start_begin)) : .;
+
                bsp_section_text_end = .;
        } > REGION_TEXT AT > REGION_TEXT_LOAD
        bsp_section_text_size = bsp_section_text_end - bsp_section_text_begin;
@@ -248,6 +259,16 @@ SECTIONS {
                *(set_pseudo_*);
 
                KEEP (*(SORT(.rtemsroset.*)))
+
+               /*
+                * If requested, align the size of the rodata section to the
+                * next power of two to meet MPU region alignment requirements.
+                */
+               . = DEFINED (bsp_section_do_mpu_align) ?
+                   bsp_section_rodata_begin
+                   + ALIGN (. - bsp_section_rodata_begin,
+                   1 << LOG2CEIL (. - bsp_section_rodata_begin)) : .;
+
                bsp_section_rodata_end = .;
        } > REGION_RODATA AT > REGION_RODATA_LOAD
        bsp_section_rodata_size = bsp_section_rodata_end - 
bsp_section_rodata_begin;
-- 
2.16.4

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to