[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ВН 12 ноября 2003 г. 21:07
В ответ на: Прерывания. Ассемблер. 54хх. отправлено Руслан 12 ноября 2003 г. 20:23

А локация 60h это что? Если начальный адрес всей таблицы векторов, то не годится. Если смещение в таблице, а такое смещение соответств. INT3, то вполне.
Примерно так.
Ну и где-то в основной программе должны быть в нужное место мапированы вектора, смотрите описание PMST. А нужное место - 0xXY80 из CMD файла. XY любые, с учетом процессора, конечно. Вместо 80 в конце м.б. 0. Выравнивание по 0x80 должно быть, короче.
Регистр маски само собой должен быть надлежащим образом установлен,
INTM сброшен.



.CMD FILE

MEMORY
{
PAGE 0:
....
VECT: origin = 0xXY80 length = 0x80 /* vectors, aligned at 0x80 * /
....
PAGE 1:
....
}

SECTIONS
{
...
.vectors : > VECT PAGE 0
...
}

..............................
vector.asm
.include ...
.sect ".vectors"
.mmregs
.ref _isrfunc ;
.align 0x80 ; must be aligned on page boundary

resvec: RETE ;0
NOP
NOP
NOP
nmivec: RETE ; 4, NMI
NOP
NOP
NOP
sint17: RETE ;8
NOP
NOP
NOP
.............
int3: BD _isrfunc ;60
PSHM STO
PSHM ST1
................
.end
isrfunc.asm
.include ...
.global _isrfunc
_isrfunc:PSHM ... ;if required
.....
POPM ...
POPM ST1
POPM ST0
RETI
.........
.end






Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru