[an error occurred while processing this directive]
Помогите разобраться с прерываниями в CCS2000_2.21 ! Толи ГЛЮК, толи я чего-то не понимаю!
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

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

Отправлено Андрей О. 12 октября 2004 г. 17:16

Проблема заключается в следующем, при возникновении прерывания
в программный счетчик PC загружается не вектор прерывания, а
нулевой адрес! Целевой платформой при этом является симулятор
TMS320C2812.

Если более подробно, то происходит в следующем порядке:
1. Запускаю код, работающий под DSP/BIOS.
2. После начальной инициализации и выполнения кода MAIN()
процессор уходит в системный холостой цикл, т.е. просто
ждет какого-либо прерывания.

При этом регистр IER = 0x6000 , что как раз соответствует
разрешенным прерываниям от системного таймера (вектор INT14)
Этот вектор INT14 указывает на процедуру CLK_F_isr , видимо
системный "тик-так". Комбинация битов (VMAP=1 и ENPIE=1) при
этом показывает, что таблицей векторов является стандартная
таблица PIE Vector по адресу 0х000D00.

3. Через какое-то время поднимается флажок таймера (регистр IEF=0x2000),
но после выполнения текущей команды в программный счетчик PC грузится
адрес 0х000000, хотя я думал что должен грузится вектор INT14.
4. Дальше естественно начинается полная чепуха, которая заканчивается
обращением в защищенные ячейки памяти и остановкой выполнения кода.

Я чего-то не понимаю? Что-то не доделано в исходном коде?
Или это глюк CCS2000_2.21? А если глюк, то как его обойти?

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru