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

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

Отправлено _A_K 22 апреля 2004 г. 14:33
В ответ на: Вы рассказываете мне сказки отправлено AntZ 22 апреля 2004 г. 14:16

Еще раз повторяю - сами ISR (четыре штуки) работают корректно ВСЕГДА (по крайней мере последние два месяца :).
По причине того, что я начинал с процессоров, имеющих 32 байта ОЗУ на боту и нихрена больше у меня привычка выработалась - ВСЕГДА после компиляции и даже ассеблирования просматривать листинги критических мест. Ниже код, сгенеренный C-компилером для той самой ISR, никакого криминала я там не обнаружил, может Вы попробуете, буду благодарен.

а по поводу "Купили бы DSK за $395 и навесили бы дочку"
ну нет у меня своих денег лишних столько, чтобы все покупать и отдельно еще и дочки делать, а контора не дает. Купили один самый дешевый DSK5402 - отлаживайся говорят на нем и понять не могут, что ядро другое.
это блин такая у нас в Омске действительность, наверное у Вас в Корее по другому и я в хорошем смысле завидую Вам


;*******************************************************************************
;* INTERRUPT NAME: _isr_aic23_rx *
;* *
;* Function Uses Regs : AR1,XAR1,AR2,XAR2,AR3,XAR3,SP,ST1,ST2,ST3,MDP,CARRY, *
;* TC1,M40,SATA,SATD,RDM,FRCT,SMUL *
;* Save On Entry Regs : AR1,AR2,AR3,ST3,MDP *
;*******************************************************************************
_isr_aic23_rx:
.line 2
;----------------------------------------------------------------------
; 63 | extern Cbuf LineRxSmpl;
;----------------------------------------------------------------------
PSHBOTH XAR1
PSHBOTH XAR2
PSHBOTH XAR3
PSH mmap(ST3_55)
PSH mmap(MDP)
AMAR *SP(#0), XAR1
AND #0xfffe, mmap(SP)
PSH AR1
AND #0xf91f, mmap(ST1_55)
OR #0x4100, mmap(ST1_55)
AND #0xfa00, mmap(ST2_55)
OR #0x8000, mmap(ST2_55)
.ref ___bss__
MOV #((___bss__ >> 16) & 0x7f), MDP
AMOV #___bss__, XAR1
AMAR *AR1, XAR2
AMAR *AR1, XAR3
AADD #-1, SP
.line 5
;----------------------------------------------------------------------
; 65 | *LineRxSmpl.write++ = _MCBSP_DRR20;
;----------------------------------------------------------------------
MOV *abs16(#(_LineRxSmpl+1)), AR2 ; |65|
MOV AR2, AR3 ; |65|
AMAR *AR3+
MOV AR3, *abs16(#(_LineRxSmpl+1)) ; |65|
MOV #10241, AR3 ; |65|
MOV port(*AR3), AR1 ; |65|
MOV AR1, *AR2 ; |65|
.line 6
;----------------------------------------------------------------------
; 66 | _MCBSP_DRR10;
;----------------------------------------------------------------------
MOV #10240, AR3 ; |66|
MOV port(*AR3), AR1 ; |66|
.line 8
;----------------------------------------------------------------------
; 68 | if(LineRxSmpl.write == LineRxSmpl.start + LineRxSmpl.size) LineRxSmpl.w
; | rite = LineRxSmpl.start;
;----------------------------------------------------------------------
BCLR ST3_SATA
MOV *abs16(#(_LineRxSmpl+3)), AR1 ; |68|
ADD *abs16(#(_LineRxSmpl+2)), AR1, AR1 ; |68|
MOV *abs16(#(_LineRxSmpl+1)), AR2 ; |68|
CMPU AR2 != AR1, TC1 ; |68|
BCC L4,TC1 ; |68|
; branch occurs ; |68|
MOV *abs16(#(_LineRxSmpl+2)), AR1 ; |68|
MOV AR1, *abs16(#(_LineRxSmpl+1)) ; |68|
L4:
.line 9
AADD #1, SP
POP mmap(SP)
POP mmap(MDP)
POP mmap(ST3_55)
POPBOTH XAR3
POPBOTH XAR2
POPBOTH XAR1
RETI

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru