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

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

Отправлено AntZ 22 апреля 2004 г. 10:06
В ответ на: Помогите разобраться - 5502 глюк какой-то или с картой памяти или с прерываниями (+ много) отправлено _A_K 22 апреля 2004 г. 08:52

1) Не вижу, где инициализируются страницы прерываний, - вектора прерываний должны быть описаны на асме типа


;/*------------------------------------------------------------------*/
;/* */
;/* Interrupt vectors */
;/* 5502 DSP */
;/* */
;/*------------------------------------------------------------------*/

.sect ".vectors"
.global _VECSTART

.ref _c_int00

.ref _TIMER5502_T1_ISR
.ref _UART5502_ISR
.ref _LTXXXX_ISR
.ref _LTXXXX_ISR


_VECSTART:
res: .ivec _c_int00, USE_RETA
nmi: .ivec no_isr
int0: .ivec no_isr
int2: .ivec no_isr
tint0: .ivec no_isr
rint0: .ivec no_isr
rint1: .ivec no_isr
xint1: .ivec no_isr
lckint: .ivec no_isr
dmac1: .ivec _LTXXXX_ISR ; DMA1 is ADC input channel
dspint: .ivec no_isr
int3: .ivec no_isr
rint2: .ivec _UART5502_ISR ; UART interrupt is muxed with RINT2
xint2: .ivec no_isr
dmac4: .ivec no_isr
dmac5: .ivec no_isr
int1: .ivec no_isr
xint0: .ivec no_isr
dmac0: .ivec _LTXXXX_ISR ; DMA0 is DAC output channel
sint20: .ivec no_isr
dmac2: .ivec no_isr
dmac3: .ivec no_isr
tint1: .ivec _TIMER5502_T1_ISR ; Timer1 is global clock
i2c: .ivec no_isr
berr: .ivec no_isr
dlog: .ivec no_isr
rtos: .ivec no_isr
sint27: .ivec no_isr
sint28: .ivec no_isr
sint29: .ivec no_isr
sint30: .ivec no_isr
sint31: .ivec no_isr


; no_isr interrupt routine;
.text
.def no_isr

no_isr:
B #no_isr

no_isr2:
B #no_isr2

void_isr:
RETI

2) Где инициализация IVPD & IVPH?


;/*------------------------------------------------------------------*/
;/* Initialize ISR vectors registers */
;/*------------------------------------------------------------------*/
_INT_InitializeVectors:
; init interrupts vector page
MOV T0, mmap(IVPD)
MOV T0, mmap(IVPH)
RPT #10
NOP
RET

3) Несмотря на то что Вам это сильно неприятно слышать
ISR на C не пишут для 55xx
Вас предупредили, а послушаете или нет - Ваше дело.

4) Без эмулятора железо отладить сложно, скупой в данном случае заплатит трижды. Я например ставлю точку останова на ISR для того чтобы убедится что прога туда заходит - прохожу ISR в пошаговом - и то отладка преврашается в нечто очень неприятное. Куда лучше алгоритмы в симуляторе отлаживать.

Все это личный опыт полугодового секса с 5502.

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru