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

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

Отправлено Чайник 04 декабря 2003 г. 13:15

Наткнулся вот на следующую засаду:

Имеется некий участок линейного кода в PM, который проц "проходит" в прерывании 125us, вызов участка - CALL

Код:

1) ay1 = dm(1);
2) i4 = БУФЕР1;
3) i5 = БУФЕР2;
4) sr0 = БУФЕР3;
5) sr1 = БУФЕР4;
6) my1 = Константа1;
7) my0 = Константа2;
8) call ОБРАБОТКА;
// А теперь внимание !!!!!!

9) ay1 = dm(2); - Эта команда не работает !!!!!

10)ax0 = dm(3);
11)ar = ax0 + ay0;
Далее идет остальной код ....

Обработчик вызова выглядит так:

//---------------------------------------------

ОБРАБОТКА:
ля - ля - ля, три рубля ....

do цикл until ce
................................
ar = sr1 + ay0, mx0 = dm(i0,m0), my0 = pm(i5,m5);
................................
цикл: ar = af - mr1;
dm(i1,m1) = ar;
rts;
//------------------------------------------------

Ну вот, думал "голову ломал" придумал так:

перед 9 - й командой делать задержанное ветвление

8) call ОБРАБОТКА (DB); // Задерживаем на два такта
9) ay1 = dm(2); // 1
10) ax0 = dm(3); // 2

Тады в обработчике имеем:
ОБРАБОТЧИК:
dm(TEMP1) = ay1; // Сохраняем результат команды 9
dm(TEMP2) = ax0; // то - же 10

ля-ля-ля ... три рубля с...


ay1 = dm(TEMP1);
ax0 = dm(TEMP2);

rts;


И только в таком виде удалось получить результат ...
Предупрездяю - этот глюк проявился только при достаточно высокой загрузке проца. Месяц назад его не было :)))) Тогда правда UART работал через пень - колоду, сейчас UART по-честному отрабатывает обмен .
Вот такие грустные новости ... пойду на семинар в пятницу смотреть в "честные глаза" Anal Dev...

Может кто-нить сталкивался ?

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru