?? sys_init.asm
字號:
;===========================================================================
; 文件名: Sys_init.asm
;
; 模塊名: SYS_INIT
;
; 功能描述: 初始化 F24x/xx 設備
;
; 公司: 達盛科技
;
; 修改記錄:
;
; 最后更新日期: 2005.7.29
;===========================================================================
.include x24x_app.h
.def SYS_INIT
.ref GPR0
stack_size .set 20h
stack_start .usect "stack",stack_size
SYS_INIT:
;---目標板選擇---------------
.if (x240)
POINT_PG0
SETC INTM ;禁止中斷
SPLK #0h, IMR ;屏蔽所有中斷
SPLK #0FFh, IFR ;清所有中斷標志
CLRC SXM ;禁止符號擴展
CLRC OVM ;清溢出標志
CLRC CNF ;設置 Block B0 為數據存儲器
LAR AR1, #stack_start ;初始化堆棧指針
MAR *,AR1
POINT_B0
SPLK #04h, GPR0 ;Set 0 wait states for XMIF
OUT GPR0, WSGR
POINT_PF1
SPLK #0041h,PLL_CNTL1 ;Disable PLL first.=CPUCLK/2,
SPLK #00B1h,PLL_CNTL2 ;CLKIN(XTAL)=10MHz, PLL*2.0=20MHz
; SPLK #0081h,PLL_CNTL1 ;CLKMD=PLL Enable,f_SYSCLK=f_CPUCLK/2
SPLK #0080h,PLL_CNTL1 ;CLKMD=PLL Enable,f_SYSCLK=f_CPUCLK/4
SPLK #40C0h,SYSCR ;CLKOUT=CPUCLK
;Comment out if WD is to be active
SPLK #006Fh, WD_CNTL ;如果 VCCP=5V則禁止WD
KICK_DOG
RET
.endif
;-----------------------------------
.if (x243)
POINT_PG0
SETC INTM ;Disable interrupts
SPLK #0h, IMR ;Mask all Ints
SPLK #0FFh, IFR ;Clear all Int Flags
;Init PDP interrupt flag after reset
LDP #PIRQR0>>7
LACC PIRQR0 ; Clear pending PDP flag
AND #0FFFEh
SACL PIRQR0
POINT_EV
LACC EVIFRA ; Clear PDP int flag
OR #0001h
SACL EVIFRA
POINT_PG0
CLRC SXM ;Clear Sign Extension Mode
CLRC OVM ;Reset Overflow Mode
CLRC CNF ;Config Block B0 to Data mem.
SPM 0
LAR AR1, #stack_start ;Init s/w stack pointer
MAR *,AR1
POINT_B0
SPLK #0040h, GPR0 ;Set 0 wait states for XMIF
OUT GPR0, WSGR
POINT_PF1
SPLK #40C0h,SYSCR ;CLKOUT=CPUCLK
;Comment out if WD is to be active
SPLK #006Fh, WD_CNTL ;如果 VCCP=5V則禁止WD
KICK_DOG
RET
.endif
;-----------------------------------
.if (x2407)
POINT_PG0
SETC INTM ;禁止中斷
SPLK #0h, IMR ;屏蔽中斷申請
SPLK #0FFh, IFR ;清除中斷標志
;Init PDP interrupt flag after reset
LDP #PIRQR0>>7
LACC PIRQR0 ; Clear pending PDP flag
AND #0FFFEh
SACL PIRQR0
LACC PIRQR2 ; Clear pending PDP flag
AND #0FFFEh
SACL PIRQR2
LDP #MCRB>>7
;SPLK #0FE3FH,MCRB
LACC MCRB
OR #003CH
SACL MCRB
POINT_EV
LACC EVAIFRA ; Clear PDPINTA flag
OR #0001h
SACL EVAIFRA
LDP #EVBIFRA>>7
LACC EVBIFRA ; Clear PDPINTB flag
OR #0001h
SACL EVBIFRA
POINT_PG0
CLRC SXM ;Clear Sign Extension Mode
CLRC OVM ;Reset Overflow Mode
CLRC CNF ;Config Block B0 to Data mem.
SPM 0
LAR AR1, #stack_start ;Init s/w stack pointer
MAR *,AR1
POINT_B0
SPLK #00C0h, GPR0 ;Set 1 wait states for I/O space
OUT GPR0, WSGR
POINT_PF1
.if (x4_PLL)
SPLK #00A5h, SCSR1 ; x4 PLL, ADC en, EV1 en, clr Ill Addr flg
.endif
.if (x2_PLL)
SPLK #02A5h, SCSR1 ; x2 PLL, ADC en, EV1 en, clr Ill Addr flg
.endif
;Comment out if WD is to be active
SPLK #006Fh, WD_CNTL ;如果 VCCP=5V則禁止WD
KICK_DOG
RET
.endif
;-----------------------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -