Skip to content

Commit e1efafa

Browse files
evgeniy-paltsevnashif
authored andcommitted
ARC: don't align ROM region end if not required
This extra MPU alignment of RAMABLE_REGION is only required if we put ROMABLE_REGION and RAMABLE_REGION into the same (continuous) memory (i.e. SRAM) - so we won't get beginning of the RAMABLE_REGION in the end of ROMABLE_REGION MPU aperture. If we use different regions (ICCM & DCCM, FLASH & SRAM, etc...) we don't need this extra MPU alignment. Let's drop it to decrease ROM memory usage. Signed-off-by: Eugeniy Paltsev <[email protected]> Signed-off-by: Evgeniy Paltsev <[email protected]>
1 parent 79433b0 commit e1efafa

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

include/zephyr/arch/arc/v2/linker.ld

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,16 @@
1717
#ifdef CONFIG_HARVARD
1818
#define ROMABLE_REGION ICCM
1919
#define RAMABLE_REGION DCCM
20+
#define ROM_RAM_IN_SAME_REGION 0
2021
#else
2122
#if defined(CONFIG_XIP) && (FLASH_SIZE != 0)
2223
#define ROMABLE_REGION FLASH
2324
#define RAMABLE_REGION SRAM
25+
#define ROM_RAM_IN_SAME_REGION 0
2426
#else
2527
#define ROMABLE_REGION SRAM
2628
#define RAMABLE_REGION SRAM
29+
#define ROM_RAM_IN_SAME_REGION 1
2730
#endif
2831
#endif
2932

@@ -138,7 +141,13 @@ SECTIONS {
138141
_ectors = .;
139142
#endif /* CONFIG_CPP && !CONFIG_CPP_STATIC_INIT_GNU && __MWDT_LINKER_CMD__ */
140143

144+
/* This extra MPU alignment of RAMABLE_REGION is only required if we put ROMABLE_REGION and
145+
* RAMABLE_REGION into the same (continuous) memory - otherwise we can get beginning of the
146+
* RAMABLE_REGION in the end of ROMABLE_REGION MPU aperture.
147+
*/
148+
#if ROM_RAM_IN_SAME_REGION
141149
MPU_ALIGN(ABSOLUTE(.) - __rom_region_start);
150+
#endif
142151
} GROUP_LINK_IN(ROMABLE_REGION)
143152

144153
__rodata_region_end = .;

0 commit comments

Comments
 (0)