linker: set __rom_region_end via an offset from __rom_region_start

Currently __rom_region_end points to the virtual memory address, while
__rom_region_start points to the load memory address. In most cases the
two address spaces will be the same. In the case of the infineon xmc4xxx
series they can be different because flash can be read via a different
cachable address space.

Evaluate __rom_region_end as an offset from __rom_region_start to fix this
possible issue.

Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
This commit is contained in:
Andriy Gelman 2022-06-30 22:51:10 -04:00 committed by Carles Cufí
parent 8d5acea57b
commit 4e90efa79f

View File

@ -209,7 +209,7 @@ SECTIONS
__rodata_region_end = .;
MPU_ALIGN(__rodata_region_end - ADDR(rom_start));
__rom_region_end = .;
__rom_region_end = __rom_region_start + . - ADDR(rom_start);
GROUP_END(ROMABLE_REGION)