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

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

Отправлено SM 14 июня 2005 г. 15:20
В ответ на: (+) отправлено Doka 14 июня 2005 г. 14:16


.global start

.sect ".init"

start:

; ----------- Set new interrupt vector's location

bset intm
bclr C54CM
bclr ARMS
bclr CPL

rpt #20
nop

mov #0, port(#PLLCSR)

rpt #20
nop

amov #3FFFh,xsp
amov #3EFFh,xssp

rpt #20
nop

mov #vecs>>8,mmap(@IVPD)
mov #vecs>>8,mmap(@IVPH)

rpt #20
nop

; ----------- Reset CPU for dual stack with fast return configuration

reset

nop
nop
nop
nop
nop
nop
nop
nop

halt: b halt

.text


begin:

amov #usrstack+STACKSIZE-2,xsp
amov #sysstack+STACKSIZE-2,xssp

bclr C54CM
bclr ARMS
bclr CPL

; PLL
mov #8000h,port(#PLLDIV1)
mov #8003h,port(#PLLDIV2)
mov #10,port(#PLLM)
rpt #20
nop
mov #1, port(#PLLCSR)

wait_lock: rpt #20
nop
mov port(#PLLCSR),t0
and #20h,t0
bcc wait_lock,t0==#0


; timer (12.288 MHZ TOUT1 for codec)
mov #0,port(#GPTGCTL_1)
mov #0,port(#GPTGCTL_0)
mov #0,port(#GPTCTL1_1)
mov #0,port(#GPTCTL1_0)

rpt #100
nop

mov #10h,port(#TSSR)
mov #0003h, port(#GPTGCTL_1)
mov #11,port(#GPTPRD1_1)
mov #0,port(#GPTPRD2_1)
mov #0,port(#GPTPRD3_1)
mov #0,port(#GPTPRD4_1)
mov #0,port(#GPTCNT1_1)
mov #0,port(#GPTCNT2_1)
mov #0,port(#GPTCNT3_1)
mov #0,port(#GPTCNT4_1)
mov #0088h, port(#GPTCTL1_1)


mov #0003h, port(#GPTGCTL_0)
mov #2944*2,port(#GPTPRD1_0)
mov #0,port(#GPTPRD2_0)
mov #0,port(#GPTPRD3_0)
mov #0,port(#GPTPRD4_0)
mov #0,port(#GPTCNT1_0)
mov #0,port(#GPTCNT2_0)
mov #0,port(#GPTCNT3_0)
mov #0,port(#GPTCNT4_0)
mov #0080h, port(#GPTCTL1_0)

; HPI - as GPIO

mov #0,port(#XBSR)

rpt #3
nop

mov #0FF0h, port(#PGPIOEN2)
mov #0, port(#PGPIODIR2)

;76543210
mov #11110000b, port(#IODIR)
mov #01110000b, port(#IODATA)

mov #0FFFFh,mmap(@IFR0)
mov #0FFFFh,mmap(@IFR1)

mov #1210h, mmap(@IER0)
mov #0094h, mmap(@IER1)
bclr intm

.sect ".vectors"

;SINT IER/IMR Description
vecs: .ivec begin, USE_RETA ; 00 00 0001 Reset
.ivec iret1 ; 01 01 0002 NMI
.ivec iret1 ; 02 02 0004 Ext. #0
.ivec iret1 ; 03 03 0008 Ext. #2
.ivec timer_int ; 04 04 0010 Timer #0
.ivec iret1 ; 05 05 0020 MCBSP #0 RX
.ivec iret1 ; 06 06 0040 MCBSP #1 RX
.ivec iret1 ; 07 07 0080 MCBSP #1 TX
.ivec iret1 ; 08 08 0100 USB
.ivec dmac1_int ; 09 09 0200 DMAC #1
.ivec iret1 ; 10 10 0400 HPI
.ivec iret1 ; 11 11 0800 Ext #3, WDT
.ivec uart_int ; 12 12 1000 UART
.ivec iret1 ; 13 13 2000 --- reserved ---
.ivec iret1 ; 14 14 4000 DMAC #4
.ivec iret1 ; 15 15 8000 DMAC #5
.ivec iret1 ; 16 00 0001 Ext #1
.ivec iret1 ; 17 01 0002 MCBSP #0 TX
.ivec dmac0_int ; 18 02 0004 DMAC #0
.ivec iret1 ; 19 03 0008 Ext #4, RTC
.ivec dmac2_int ; 20 04 0010 DMAC #2
.ivec iret1 ; 21 05 0020 DMAC #3
.ivec iret1 ; 22 06 0040 Timer #1
.ivec i2c_int ; 23 07 0080 I2C
.ivec iret1 ; 24 08 0100 Bus access error
.ivec iret1 ; 25 09 0200 Data log int
.ivec iret1 ; 26 10 0400 RTOS int
.ivec iret1 ; 27 11 0800 SINT 27
.ivec iret1 ; 28 12 1000 SINT 28
.ivec iret1 ; 29 13 2000 SINT 29
.ivec iret1 ; 30 14 4000 SINT 30
.ivec iret1 ; 31 15 8000 SINT 31


.text




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

Ответы


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

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

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

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

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


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

E-mail: info@telesys.ru