⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sys_init.asm

📁 TMSLF2407A TI DSK 标准原程序 内含:AC电机控制etc, 良师益友
💻 ASM
字号:
;===========================================================================
; Module Name: S Y S _ I N I T				      
;
; File Name:	Sys_init.asm
;
; Description:  Initializes F24x/xx devices
;
;
; History:
;
; Last Update: 06-26-2000
;===========================================================================
		.include	x24x_app.h
		.def	SYS_INIT
		.ref	GPR0

SYS_INIT:
;---target dependancy---------------
	.if (x240)

		POINT_PG0
		SETC	INTM			;Disable interrupts
		SPLK	#0h, IMR		;Mask all Ints
		SPLK	#0FFh, IFR		;Clear all Int Flags
		CLRC	SXM			;Clear Sign Extension Mode
		CLRC	OVM			;Reset Overflow Mode
		CLRC	CNF			;Config Block B0 to Data mem.
		LAR	AR1, #03C0h		;Init s/w stack pointer
		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 	;Disable WD if VCCP=5V
		KICK_DOG
		RET
	.endif
;-----------------------------------


;---target dependancy---------------
	.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, #03C0h		;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 	;Disable WD if VCCP=5V
		KICK_DOG
		RET
	.endif
;-----------------------------------

;---target dependancy---------------
	.if (x2407)
		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
		LACC	PIRQR2		; Clear pending PDP flag
		AND	#0FFFEh
		SACL	PIRQR2
		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, #03C0h		;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	#0085h, SCSR1	; x4 PLL, ADC en, EV1 en, clr Ill Addr flg         
		.endif 
 
    		.if (x2_PLL)  
    		SPLK	#0285h, SCSR1	; x2 PLL, ADC en, EV1 en, clr Ill Addr flg
		.endif 
        
	;Comment out if WD is to be active
		SPLK	#006Fh, WD_CNTL 	;Disable WD if VCCP=5V
		KICK_DOG
		RET
	.endif
;-----------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -