Код
place in RAM_region { readwrite,
block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,
block UND_STACK, block ABT_STACK, block HEAP, block SYS_STACK };
block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,
block UND_STACK, block ABT_STACK, block HEAP, block SYS_STACK };
соответственно в MAP-файле я видел:
Код
"P4", part 1 of 3: 0x1510
CSTACK 0x00200000 0x1000 <Block>
CSTACK uninit 0x00200000 0x1000 <Block tail>
.iar.dynexit 0x00201000 0x210 <Block>
.iar.dynexit uninit 0x00201000 0xc cppinit.o [3]
.iar.dynexit uninit 0x0020100c 0x204 <Block tail>
SVC_STACK 0x00201210 0x200 <Block>
SVC_STACK uninit 0x00201210 0x200 <Block tail>
IRQ_STACK 0x00201410 0x100 <Block>
IRQ_STACK uninit 0x00201410 0x100 <Block tail>
FIQ_STACK 0x00201510 0x0 <Block>
UND_STACK 0x00201510 0x0 <Block>
ABT_STACK 0x00201510 0x0 <Block>
HEAP 0x00201510 0x0 <Block>
- 0x00201510 0x1510
CSTACK 0x00200000 0x1000 <Block>
CSTACK uninit 0x00200000 0x1000 <Block tail>
.iar.dynexit 0x00201000 0x210 <Block>
.iar.dynexit uninit 0x00201000 0xc cppinit.o [3]
.iar.dynexit uninit 0x0020100c 0x204 <Block tail>
SVC_STACK 0x00201210 0x200 <Block>
SVC_STACK uninit 0x00201210 0x200 <Block tail>
IRQ_STACK 0x00201410 0x100 <Block>
IRQ_STACK uninit 0x00201410 0x100 <Block tail>
FIQ_STACK 0x00201510 0x0 <Block>
UND_STACK 0x00201510 0x0 <Block>
ABT_STACK 0x00201510 0x0 <Block>
HEAP 0x00201510 0x0 <Block>
- 0x00201510 0x1510
После переноса проекта на версию IAR 6.5 линкер правильно читает все что касается ROM, но все стеки пихает в конец
Код
"P4", part 3 of 3: 0x1300
CSTACK 0x002138b0 0x1000 <Block>
CSTACK uninit 0x002138b0 0x1000 <Block tail>
SVC_STACK 0x002148b0 0x200 <Block>
SVC_STACK uninit 0x002148b0 0x200 <Block tail>
IRQ_STACK 0x00214ab0 0x100 <Block>
IRQ_STACK uninit 0x00214ab0 0x100 <Block tail>
FIQ_STACK 0x00214bb0 0x0 <Block>
UND_STACK 0x00214bb0 0x0 <Block>
ABT_STACK 0x00214bb0 0x0 <Block>
HEAP 0x00214bb0 0x0 <Block>
- 0x00214bb0 0x1300
CSTACK 0x002138b0 0x1000 <Block>
CSTACK uninit 0x002138b0 0x1000 <Block tail>
SVC_STACK 0x002148b0 0x200 <Block>
SVC_STACK uninit 0x002148b0 0x200 <Block tail>
IRQ_STACK 0x00214ab0 0x100 <Block>
IRQ_STACK uninit 0x00214ab0 0x100 <Block tail>
FIQ_STACK 0x00214bb0 0x0 <Block>
UND_STACK 0x00214bb0 0x0 <Block>
ABT_STACK 0x00214bb0 0x0 <Block>
HEAP 0x00214bb0 0x0 <Block>
- 0x00214bb0 0x1300
Как это лечить?
P.S. в проекте некоторые файлы компилируются C++