In IAR compile, change the sequence of the ROM section. (#1722)

we changed the sequence of ROM section to "<ro code> <ro data>" when compiled with the IAR.

When the ROM area is large, PC could not jump properly in the program area.
The other development environment of this sequence ("ro code, ro data").
pull/1749/head
TomoYamanaka 2016-05-17 20:39:47 +09:00 committed by Martin Kojtal
parent 1d1f7ab133
commit 909c76f36c
1 changed files with 3 additions and 2 deletions

View File

@ -38,6 +38,7 @@ define region RetRAM_region = mem:[from __ICFEDIT_region_RetRAM_start__
define region MirrorRAM_region = mem:[from __ICFEDIT_region_MirrorRAM_start__ to __ICFEDIT_region_MirrorRAM_end__];
define region MirrorRetRAM_region = mem:[from __ICFEDIT_region_MirrorRetRAM_start__ to __ICFEDIT_region_MirrorRetRAM_end__];
define block ROM_FIXED_ORDER with fixed order { ro code, ro data };
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ { };
define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };
@ -48,11 +49,11 @@ define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
initialize by copy { readwrite };
do not initialize { section .noinit };
do not initialize { section MMU_TT };
do not initialize { section .retram };
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
place in ROM_region { readonly };
place in ROM_region { readonly, block ROM_FIXED_ORDER };
place in RAM_region { readwrite,
block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,
block UND_STACK, block ABT_STACK, block HEAP };