Я написал обновлялку прошивки, положил ее в нулевой сегмент флэша. Командами на компьютере начинаю стирать флэш (пока по одному сектору). 3, 4, 5, 6, 7, 8 нормально стираются. После стирания 9 программа ломается. Как узнать, если ли ссылки из моей обновлялки прошивки на другие сегменты (и как их запретить)?
Вот информация о самом модуле обновления (FWU = firmware updater):
Код
2 980 bytes in segment FWUCODE
4 246 bytes in segment FWUDATA_AN
634 bytes in segment FWUDATA_C
2 546 bytes of CODE memory (+ 434 bytes shared)
634 bytes of CONST memory
0 bytes of DATA memory (+ 4 246 bytes shared)
4 246 bytes in segment FWUDATA_AN
634 bytes in segment FWUDATA_C
2 546 bytes of CODE memory (+ 434 bytes shared)
634 bytes of CONST memory
0 bytes of DATA memory (+ 4 246 bytes shared)
А вот обо всей прошивке:
Код
SEGMENT SPACE START ADDRESS END ADDRESS SIZE TYPE ALIGN
======= ===== ============= =========== ==== ==== =====
INTVEC 00000000 - 0000001F 20 com 2
FWUCODE 00000040 - 00000B99 B5A rel 2
FWUDATA_C 00000B9C - 00000E15 27A rel 2
CONFIG 00003000 - 00003003 4 rel 2
PRGENTRY 00004000 - 00004017 18 rel 2
ICODE 00004018 - 00004497 480 rel 2
DIFUNCT 00004498 - 0000449B 4 rel 2
CODE 0000449C - 00017BD3 13738 rel 2
INITTAB 00017BD4 - 00017BEB 18 rel 2
DATA_ID 00017BEC - 00017BF7 C rel 2
DATA_C 00017BF8 - 0001C4F1 48FA rel 2
DATA_I 40000000 - 4000000B C rel 2
DATA_Z 4000000C - 40004495 448A rel 2
CSTACK 40004498 - 4000451B 84 rel 2
IRQ_STACK 4000451C - 4000469B 180 rel 2
FIR_STACK 4000469C - 400046AB 10 rel 2
SVC_STACK 400046AC - 400047AB 100 rel 2
FWUSTARTFLAG 40007F5C - 40007F5C 1 rel 2
======= ===== ============= =========== ==== ==== =====
INTVEC 00000000 - 0000001F 20 com 2
FWUCODE 00000040 - 00000B99 B5A rel 2
FWUDATA_C 00000B9C - 00000E15 27A rel 2
CONFIG 00003000 - 00003003 4 rel 2
PRGENTRY 00004000 - 00004017 18 rel 2
ICODE 00004018 - 00004497 480 rel 2
DIFUNCT 00004498 - 0000449B 4 rel 2
CODE 0000449C - 00017BD3 13738 rel 2
INITTAB 00017BD4 - 00017BEB 18 rel 2
DATA_ID 00017BEC - 00017BF7 C rel 2
DATA_C 00017BF8 - 0001C4F1 48FA rel 2
DATA_I 40000000 - 4000000B C rel 2
DATA_Z 4000000C - 40004495 448A rel 2
CSTACK 40004498 - 4000451B 84 rel 2
IRQ_STACK 4000451C - 4000469B 180 rel 2
FIR_STACK 4000469C - 400046AB 10 rel 2
SVC_STACK 400046AC - 400047AB 100 rel 2
FWUSTARTFLAG 40007F5C - 40007F5C 1 rel 2
IAR 4.42A
Спасибо.