afad 0 26 августа, 2004 Опубликовано 26 августа, 2004 · Жалоба Подкинте примерчик, как установить вектора прерываний в IAR EW 4.xx для случая, когда вектора находятся в ПЗУ и когда они в ОЗУ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
d__ 0 23 сентября, 2004 Опубликовано 23 сентября, 2004 · Жалоба __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 можно размещать динамически адреса обработчиков прерываний. Это не точный шаблон конкретной программы, только прорисоывна концепция решения проблемы... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Den 0 14 января, 2005 Опубликовано 14 января, 2005 · Жалоба А есть ли возможность задать вектора через Сишный код? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться