Цитата(KRS @ Oct 9 2009, 18:18)

из этой строчки
place in ROM1_region { readonly section .difunct, section .cstart, section BOOTSEG };
надо readonly убрать!
Попробовал

Не помогло. Но решение найдено!
Во-первых ошибся со строчкой в .map файле:
> Entry Address Size Type Object
> ----- ------- ---- ---- ------
> ?main 0x00011610 Code Gb cmain.o [4]
думал, что "?main" и была моя функция. Однако, была ещё одна строчка:
> main 0x00001e39 0xd8 Code Gb main.o [1].
Во-вторых, что касается строчек:
> __iar_via_R0 0x00012045 Code Wk boot_segment.o [1]
> __iar_via_R2 0x0001204d Code Wk boot_segment.o [1]
> __iar_via_R3 0x00012051 Code Wk boot_segment.o [1]
> __iar_via_R5 0x00012049 Code Wk boot_segment.o [1]
То эти вектора или функции, не знаю как их назвать, действительно располагались в перезаписываемой флеш. Они относятся к функции iap_entry (command, result);. Вызов iap_entry происходил из тех процедур, которые я определил в BOOTSEG(неперезаписываемая область). Несмотря на это после стирания флеш, я уже не мог осуществить проверку стирания или запись (см. Chapter 30: LPC24XX Flash memory programming firmware), так как __iar_via_Rn были уже затёрты! Проблема была в размещении
__iar_via_Rn.
Что сделал? Попробовал определять не функции в конкретный сектор, а целый файл в нужную область (см.
http://supp.iar.com/Support/?note=27498&am...=search+result). В итоге:
> __iar_via_R0 0x00001fa9 Code Wk boot_segment.o [1]
> __iar_via_R2 0x00001fb1 Code Wk boot_segment.o [1]
> __iar_via_R3 0x00001fb5 Code Wk boot_segment.o [1]
> __iar_via_R5 0x00001fad Code Wk boot_segment.o [1]
Thks to KRS & to MALLOY2.