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

📄 dma.asm

📁 TMS320C32DMA程序 已调试通过!
💻 ASM
字号:
;*****************************************************************************
;  Function:	  timer.asm         
;  Version :	 1.00
;  Description:  timer
;
;  Copyright Texas instruments Inc, 2000

;*****************************************************************************
.mmregs  

		 .data
DMA      .word 808000H       ;DMA全局控制寄存器地址
RESET    .word 0c40H         ;DMA全局控制寄存器复位值  
;*********************************************************
;START=00挂起 INCSRC=DECSRC=0 原地址读完一次后不变 
;INCDST=1,DECDST=0,每写一次后,目的地址增1
;SYNC=00,不同步
;TC=1,当传输计数器到0时终止传输
;TCINT=1,当中断计数器转变为0,一个DMA中断产生              
;*********************************************************
CONTROL  .word 0c43H		 ;DMA全局控制寄存器初始化值   
;********START=11,DMA传输开始******************

SOURCE   .word ZERO			 ;数据原地址
DESTIN   .word _array		 ;数据目的地址
COUNT    .word 128			 ;要传输的数据的字数
ZERO     .float 5.0			 ;数据的初始值为0.0
		.bss _array,128      ;数组定义在.bss段中 
	                               

;*****************************************************************************
        .def	_start       
 
	.text   

_start:	
		;PUSH FP       ;保护旧FP
		;LDI SP,FP     ;设置新FP
		;ADDI 2,SP     ;分配局部帧
		PUSH ST       ;保护ST
		PUSH R0       ;保护R0的低32位
		PUSHF R0      ;保护R0的高32位
        PUSH R1       ;保护R1的低32位  
        PUSHF R1	  ;保护R1的高32位   
		PUSH R2       ;保护R2的低32位
		PUSHF R2      ;保护R2的高32位
        PUSH R3       ;保护R3的低32位  
        PUSHF R3	  ;保护R3的高32位
        PUSH R6       ;保护R6的低32位  
        PUSHF R6	  ;保护R6的高32位           
		PUSH AR0      ;
		PUSH AR1      ;
		PUSH AR2      ;
		PUSH AR3      ;
		PUSH AR4      ;		          
        ;以上为保护寄存器
;********************************************************        
		LDP DMA			;装载数据页指针
		LDI @DMA,AR0	;指向DMA全局控制寄存器
		LDI @RESET,R0   ;复位DMA
		STI R0,*AR0  
		
		LDI @SOURCE,R0  ;初始化DMA源地址寄存器
		STI R0,*+AR0(4) ;
		LDI @DESTIN,R0  ;初始化DMA目的地址寄存器
		STI R0,*+AR0(6)
		LDI @COUNT,R0   ;初始化DMA传输计数寄存器
		STI R0,*+AR0(8) ;
		OR 400H,IE      ;开中断  
		OR 2000h,ST
		
		LDI @CONTROL,R0  ;初始化DMA全局控制寄存器
		STI R0,*AR0     ;开始DMA传输
		
		                                
                                
;********************************************************        
;结束,恢复堆栈        
        POP  AR4      ;	
        POP  AR3      ;	
        POP  AR2      ;
        POP  AR1      ;        
        POP  AR0      ;        
        POPF R6       ;
        POP  R6       ;
        POPF R3       ;
        POP  R3       ;
        POPF R2       ;
        POP  R2       ; 
        POPF R1       ;
        POP  R1       ; 
        POPF R0       ;
        POP  R0       ;  
        POP  ST		  ;   
        ;SUBI 2,SP	  ;
        ;POP  FP		  ;
        RETI          ;中断返回                         

⌨️ 快捷键说明

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