From 3fccdc956c298a3f8942e83f3c933ade447e3c16 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 20 Mar 2020 08:10:46 +0100 Subject: bsps/arm: Add support for MPU region alignment Update #3910. --- bsps/arm/shared/start/linkcmds.base | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'bsps/arm/shared') diff --git a/bsps/arm/shared/start/linkcmds.base b/bsps/arm/shared/start/linkcmds.base index 1f5f1ef959..9b2442990c 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_align_text_and_rodata_end_to_power_of_2) ? + 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_align_text_and_rodata_end_to_power_of_2) ? + 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; -- cgit v1.2.3