д (20.09.2004 00:36, просмотров: 1) ответил AUG на Я это и хочу (MEMMAP=2), но ведь их вначале надо туда скопировать, или у IAR галочка специальная есть?
Ну тогда ой... Берешь цстартуп.с79 для ЛПЦ2106, немного его корректируешь:
__program_start
ldr pc,[pc,0x18]
org 0x04
ldr pc,[pc,0x18]
org 0x08
ldr pc,[pc,0x18]
org 0x0c
ldr pc,[pc,0x18]
org 0x10
ldr pc,[pc,0x18]
org 0x18
LDR pc,[pc,#-0xFF0];get irq adr fr VicVectAdr to PC
org 0x1c
LDR pc,[pc,#-0xFF0]
vectortab dcd ?cstartup
dcd undefhndlr
dcd swihndlr
dcd prefetchaborthndlr
dcd dataaborthndlr
dcd notusedhndlr
undefhndlr b undefhndlr
swihndlr b swihndlr
prefetchaborthndlr b prefetchaborthndlr
dataaborthndlr b dataaborthndlr
notusedhndlr b notusedhndlr
Сразу после метки ?cstartup добавляешь парочку команд:
?cstartup
ldr r11,=__program_start
ldr r12,=0x40000000
ldmia r11!,{r0-r10}
stmia r12!,{r0-r10]
ldmia r11!,{r0-r1}
stmia r12!,{r0-r1}
И в дальнейшем можешь подставлять адреса обработчиков прерываний в табличку vectortab, находящуюся по адресу 0x40000020 адреса функций - обработчиков прерываний, которыми могут быть просто непосредственные адреса иаровских функций с атрибутами: __arm __irq или __arm __swi . И не надейся ни на какие пупочки в нутрях иара, надо действовать по мичурински--не ждать милостей от природы, а создавать их самому...