реклама на сайте
подробности

 
 
> Как установить вектора прерываний в IAR EW?
afad
сообщение Aug 26 2004, 11:21
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 212
Регистрация: 26-08-04
Пользователь №: 545



Подкинте примерчик, как установить вектора прерываний в IAR EW 4.xx для случая, когда вектора находятся в ПЗУ и когда они в ОЗУ.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
d__
сообщение Sep 23 2004, 19:45
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 197
Регистрация: 26-08-04
Пользователь №: 548



__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 можно размещать динамически адреса обработчиков прерываний. Это не точный шаблон конкретной программы, только прорисоывна концепция решения проблемы...
Go to the top of the page
 
+Quote Post
Den
сообщение Jan 14 2005, 18:24
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 67
Регистрация: 28-12-04
Из: Нижний Новгород
Пользователь №: 1 714



А есть ли возможность задать вектора через Сишный код?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th August 2025 - 12:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01344 секунд с 7
ELECTRONIX ©2004-2016