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

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

Отправлено sdy 15 июля 2003 г. 06:55

Тут только основная инициализация, которая м.б. нужна для примеров.
Примеров три.
Условия следующие:
1) софтварное прерывание №0 (USW0) вызывается в процессе обслуживания прерывания /IRQ1. Нестинг имеет место быть. За один вход в USW0 м.б. несколько входов в другие прерывания с более высоким приоритетом.
2) Также разрешены прерывания по SPR0, TMR низкоприоритетный.
3) Про сохранение контекста не говорю ничего, т.к примеры относятся к одной и той же проге.
4) Все 3 примера имеют одно и тоже время выполнения (для этого в примерах 2 и 3 добавлены nop).
Показания:
1) Примеры (софт) №2,3 работают без проблем.
2) Пример №1 работает очень неустойчиво, т.е. прога, в которой он используется может некоторое время работать совершенно корректно, а затем даёт дуба, проц не виснет, но подпрограмма обслуживания прерывания USW0 сбивается.
А непонятно вот что:
1) Почему то при сохранении astat с помощью прямой адресации (к косвенной данное утверждение не относится) необходим nop сразу после данной команды (данное утверждение относится почему то только к моей проге и вывел я его совершенно самостоятельно; то ли звёзды не так встали, то ещё чего - не понимаю).

#define XXX_ASTAT_OFFS 0
#define XXX_R0_OFFS 1

.section/dm dm_sec;
.var xxx_str[2];

.section/pm pm_sec;
main:
bit set mode1 IRPTEN|NESTM;
m6 = 1;
l5 = 0;
b5 = xxx_str;
...

// Пример 1:
.section/pm pm_sec;
usw0_occured:
dm(xxx_str+XXX_ASTAT_OFFS) = astat;
dm(xxx_str+XXX_R0_OFFS) = r0;
...
nop;
...

// Пример 2:
.section/pm pm_sec;
usw0_occured:
dm(xxx_str+XXX_ASTAT_OFFS) = astat;
nop;
dm(xxx_str+XXX_R0_OFFS) = r0;
...

// Пример 3:
.section/pm pm_sec;
usw0_occured:
dm(i5,m6) = astat;
dm(i5,m6) = r0;
...
nop;
...

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru