Код
const unsigned long test_ending __attribute__ ((section("ENDOF"))) = 0x12345678;
и скаттер
Код
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x20000000 0x00080000 { ; load region size_region
ER_IROM1 0x20000000 0x00080000 {; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
*.o (ENDOF, +Last)
}
RW_IRAM1 0x80000000 UNINIT 0x0000E000 {; RW data
.ANY (+RW +ZI)
}
}
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x20000000 0x00080000 { ; load region size_region
ER_IROM1 0x20000000 0x00080000 {; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
*.o (ENDOF, +Last)
}
RW_IRAM1 0x80000000 UNINIT 0x0000E000 {; RW data
.ANY (+RW +ZI)
}
}
вот конец описания того, что легло во флеш
Код
0x20000fc8 0x0000000c Code RO 257 .text c_5.l(libspace.o)
0x20000fd4 0x0000000c Code RO 316 .text c_5.l(rt_fp_status_addr_intlibspace.o)
0x20000fe0 0x0000000c Code RO 320 .text c_5.l(sys_exit.o)
0x20000fec 0x00000000 Code RO 333 .text c_5.l(indicate_semi.o)
0x20000fec 0x00000014 Code RO 303 x$fpl$fpinit fz_5s.l(fpinit.o)
0x20001000 0x00001000 Data RO 52 .constdata fx2lp.o
0x20002000 0x00000010 Data RO 385 Region$$Table anon$$obj.o
0x20002010 0x00000004 Data RO 117 ENDOF boot.o
Execution Region RW_IRAM1 (Base: 0x80000000, Size: 0x0000dff4, Max: 0x0000e000, ABSOLUTE, UNINIT)
Base Addr Size Type Attr Idx E Section Name Object
0x20000fd4 0x0000000c Code RO 316 .text c_5.l(rt_fp_status_addr_intlibspace.o)
0x20000fe0 0x0000000c Code RO 320 .text c_5.l(sys_exit.o)
0x20000fec 0x00000000 Code RO 333 .text c_5.l(indicate_semi.o)
0x20000fec 0x00000014 Code RO 303 x$fpl$fpinit fz_5s.l(fpinit.o)
0x20001000 0x00001000 Data RO 52 .constdata fx2lp.o
0x20002000 0x00000010 Data RO 385 Region$$Table anon$$obj.o
0x20002010 0x00000004 Data RO 117 ENDOF boot.o
Execution Region RW_IRAM1 (Base: 0x80000000, Size: 0x0000dff4, Max: 0x0000e000, ABSOLUTE, UNINIT)
Base Addr Size Type Attr Idx E Section Name Object
родная секция ENDOF в аккурат в конце. Ура!
Но не тут-то было
Почему fromelf, создавая BIN, кладет после этой константы еще 5 int (20 байт)?
Понял, но не знаю, как поправить - эти 20 байт есть RW Data