Цитата(Terminator @ Jul 23 2009, 04:45)

Чтобы не возится с __ramfunc я тупо заливаю весь загрузчик в ОЗУ, благо памяти в контроллере много.
Ну а все-таки обозвать обработчик прерываний с помощью идентификатора __ramfunc можно?
Цитата(Terminator @ Jul 23 2009, 04:45)

А как вы собираетесь защитится от аварий при перепрошивке?
Например заливаем новую прошивку и тут пропадает питание. Что будет делать загрузчик? Запустит недописанную программу?
Я планирую во-первых сперва залочить область бутлоадера. Далее с программы на компьютере передаеться сперва размер прошивки и её контрольная сумма затем только прошивка. Заливаю прошивку, записываю в последние адресса флеша значания размера и контрольной суммы. Теперь беру и банально проверяю, совпало перехожу, не совпало сообщаю при этом программу на компьютере.
При влючении питания аналогично, сперва проверяю потом прыгаю. Все правильно я собираюсь делать?
Цитата(Сергей Борщ)
Поищите по форуму по ключевому слову INTVEC, я буквально на прошлой неделе пример приводил.
Я нашел это тему в общем мне нужно настройки линкера настроить примерно таким образом:
Код
-DBOOTSIZE=8000
-Z(CONST)INTRAMSTART_REMAP=00000000
-Z(CONST)INTRAMEND_REMAP=0000FFFF
-Z(CONST)INTRAMSTART=00200000
-DROMSTART=(00100000+BOOTSIZE)
-DROMEND=0013FFFF
-DINTVECSIZE=100
-DRAMSTART=(00200000+INTVECSIZE)
-DRAMEND=0020FFFF
// Intvec always linked to 0x00-0x3F
-Z(CODE)INTVEC=00000000-0000003F
// ROM
-Z(CODE)INTVEC_I=ROMSTART-ROMEND
-QINTVEC=INTVEC_I // place INTVEC image into INTVEC_I.
-Z(CODE)ICODE,CODE,DIFUNCT,SWITAB=ROMSTART-ROMEND
-Z(CONST)INITTAB,DATA_ID,DATA_C,CODE_ID=ROMSTART-ROMEND
Правильно я разобрался?