[an error occurred while processing this directive]
|
.global start.sect ".init"
start:
; ----------- Set new interrupt vector's location
bset intm
bclr C54CM
bclr ARMS
bclr CPL
rpt #20
nopmov #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
resetnop
nop
nop
nop
nop
nop
nop
nop
halt: b halt.text
begin:amov #usrstack+STACKSIZE-2,xsp
amov #sysstack+STACKSIZE-2,xsspbclr 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: info@telesys.ru