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

📄 adsp_boot.asm

📁 AD公司的DSP的外置ROM引导程序可引导用户主程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;********************************************************************************
;*                                                                              *       
;*----------------北京高阳迪威科技有限公司深圳研究中心 -------------------------*
;*                                                                              *
;*  工程:       ASB板测试程序                                                   *
;*  版本:       V1.0                                                            *
;*                                                                              *
;*  作者:       LIN QIU FU                                                      *
;*  日期:       2001/6/8                                                        *
;*                                                                              *
;********************************************************************************                                      
;*  文件描述:
;*              BOOT TO ADSP2189M
;***********************************************************
;
;
        .mmregs
;
; 包含文件:
        .include "init_c5409.inc"
        .include "main.inc"
;
; 调用函数:
        .ref   check_iack 
        .ref   var_idma_tx_count
        .ref   var_idma_pm_count 
        .ref   buf_tx_idma 
        .ref   buf_rx_idma
; 被调函数:                  
        .def   boot_adsp
;        .def   boot_adsp7		;added by yxd
; 代码:
;
        .sect   ".text"  
        
boot_adsp: 
		pshm    swwsr
	    STM     #0FFFFh , SWWSR 
 
;boot_adsp1**********************************************
        call    check_iack                ;check to see the target is ready or not 

		STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_PCR2,MCBSP2_SPSD       ;select the latch operation:DBX2=1
        
		STM     #latch_cs1,AR2            ;latch the starting address
       	ST      #0001H,*AR2               ;Pm enable,starting address=
        
        STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_WR_RD_IDMA,MCBSP2_SPSD ;select the wr/rd idma operation :BDX2=0      

		stm     #idma_cs1,ar2  
		stm     #buf_tx_idma,ar3 
		stm     #436-1,brc             

		rptb    boot_ad2189m1-1 
		call    check_iack            
        stm     #idma_cs1,ar2              ;because check_iack use ar2 
        NOP
		LD      *AR3+,A 
		nop
		nop
        STL     A,*AR2	 
        nop
        nop  
boot_ad2189m1:
        NOP	  
        
write_restart_vector1:        
        call    check_iack                ;check to see the target is ready or not 

		STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_PCR2,MCBSP2_SPSD       ;select the latch operation
        
		STM     #latch_cs1,AR2            ;latch the starting address
       	ST      #0000H,*AR2               ;Pm enable,starting address=
        
        STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_WR_RD_IDMA,MCBSP2_SPSD ;select the wr/rd idma operation       
	    
	    call    check_iack                ;iack is 0?
	   	stm     #idma_cs1,ar2             ;write to the int vector addr  
	   	st      #3c0fh,*ar2
	   	
	   	call    check_iack   	   
	    stm     #idma_cs1,ar2 
	   	st      #00fch,*ar2
	   	
	   	rpt     #10
	   	nop
;       POPM    SWWSR
;		ret 

;boot_adsp2********************************************** 
boot_adsp2:
       	call    check_iack                ;check to see the target is ready or not 

		STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_PCR2,MCBSP2_SPSD       ;select the latch operation
        
		STM     #latch_cs2,AR2            ;latch the starting address
       	ST      #0001H,*AR2               ;Pm enable,starting address=
        
        STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_WR_RD_IDMA,MCBSP2_SPSD ;select the wr/rd idma operation       

		stm     #idma_cs2,ar2  
		stm     #buf_tx_idma,ar3 
		stm     #436-1,brc             

		rptb    boot_ad2189m2-1 
		call    check_iack            
        stm     #idma_cs2,ar2              ;because check_iack use ar2 
        NOP
		LD      *AR3+,A 
		nop
		nop
        STL     A,*AR2	 
        nop
        nop  
boot_ad2189m2:
        NOP	  
        
write_restart_vector2:        
        call    check_iack                ;check to see the target is ready or not 

		STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_PCR2,MCBSP2_SPSD       ;select the latch operation
        
		STM     #latch_cs2,AR2            ;latch the starting address
       	ST      #0000H,*AR2               ;Pm enable,starting address=
        
        STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_WR_RD_IDMA,MCBSP2_SPSD ;select the wr/rd idma operation       
	    
	    call    check_iack
	   	stm     #idma_cs2,ar2 
	   	st      #3c0fh,*ar2
	   	
	   	call    check_iack   	   
	    stm     #idma_cs2,ar2 
	   	st      #00fch,*ar2
	   	
	   	rpt     #10
	   	nop
;		POPM    SWWSR
;		ret 
;		b boot_adsp5

;boot_adsp3**********************************************	   	
	   	call    check_iack                ;check to see the target is ready or not 

		STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_PCR2,MCBSP2_SPSD       ;select the latch operation
        
		STM     #latch_cs3,AR2            ;latch the starting address
       	ST      #0001H,*AR2               ;Pm enable,starting address=
        
        STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_WR_RD_IDMA,MCBSP2_SPSD ;select the wr/rd idma operation       

;		stm     #idma_cs3,ar2  
		stm     #buf_tx_idma,ar3 
		stm     #436-1,brc             

		rptb    boot_ad2189m3-1 
		call    check_iack            
        stm     #idma_cs3,ar2              ;because check_iack1 use ar2 
        NOP
		LD      *AR3+,A 
		nop
		nop
        STL     A,*AR2	 
        nop
        nop  
boot_ad2189m3:
        NOP	  
        
write_restart_vector3:        
        call    check_iack                ;check to see the target is ready or not 

		STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_PCR2,MCBSP2_SPSD       ;select the latch operation
        
		STM     #latch_cs3,AR2            ;latch the starting address
       	ST      #0000H,*AR2               ;Pm enable,starting address=
        
        STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_WR_RD_IDMA,MCBSP2_SPSD ;select the wr/rd idma operation       
	    
	    call    check_iack
	   	stm     #idma_cs3,ar2 
	   	st      #3c0fh,*ar2
	   	
	   	call    check_iack   	   
	    stm     #idma_cs3,ar2 
	   	st      #00fch,*ar2
	   	
	   	rpt     #10
	   	nop
	   	
;boot_adsp4***********************************************
        
		call    check_iack                ;check to see the target is ready or not 

		STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_PCR2,MCBSP2_SPSD       ;select the latch operation
        
		STM     #latch_cs4,AR2            ;latch the starting address
       	ST      #0001H,*AR2               ;Pm enable,starting address=
        
        STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_WR_RD_IDMA,MCBSP2_SPSD ;select the wr/rd idma operation       

;		stm     #idma_cs4,ar2  
		stm     #buf_tx_idma,ar3 
		stm     #436-1,brc             

		rptb    boot_ad2189m4-1   
		call    check_iack 
		stm     #idma_cs4,ar2              ;because check_iack1 use ar2 
        NOP
		LD      *AR3+,A 
		nop
		nop
        STL     A,*AR2	 
        nop
        nop  		           
boot_ad2189m4:
        NOP	  
        
write_restart_vector4:        
        call    check_iack                ;check to see the target is ready or not 

		STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_PCR2,MCBSP2_SPSD       ;select the latch operation
        
		STM     #latch_cs4,AR2            ;latch the starting address
       	ST      #0000H,*AR2               ;Pm enable,starting address=
        
        STM     #MCBSP_PCR_SUB_ADDR,MCBSP2_SPSA     
        STM     #K_WR_RD_IDMA,MCBSP2_SPSD ;select the wr/rd idma operation       

⌨️ 快捷键说明

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