Перейти к содержанию
    

Как установить вектора прерываний в IAR EW?

Подкинте примерчик, как установить вектора прерываний в IAR EW 4.xx для случая, когда вектора находятся в ПЗУ и когда они в ОЗУ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

__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 можно размещать динамически адреса обработчиков прерываний. Это не точный шаблон конкретной программы, только прорисоывна концепция решения проблемы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...