📄 main.asm
字号:
.global main_start
.global _McBSP_init
.global _init_54
.mmregs
.include "init_54x.inc" ;包含VC5402初始化的各个寄存器
.include "mcbsp54x.inc" ;多通道缓冲串行口的各个寄存器
K_IPTR_init .set 0080h
GPIOCR .set 3Ch
GPIOSR .set 3Dh
.text
.def _c_int00
_c_int00:
main_start:
***************初始化系统***************************
_init_54:
NOP
LD #0, DP ;复位数据页指针
****************使所有的中断无效******************************
SSBX INTM ;屏蔽全局中断
STM #0x0000,IMR ;屏蔽所有的中断
STM #0x0FFFF,IFR ;清除中断标志寄存器
****************时钟方案选择**********************************
STM #0, CLKMD ;DSP系统时钟的软件设置
STM #0, CLKMD
STM #0x9007,CLKMD ;设置VC5402 DSP时钟到5MHz
****************配置C5402系统寄存器*******************************
STM #0x7492,SWWSR ;I/O等待2个时钟,数据和程序空间无等待
STM #0x0000,BSCR ;为块切换等待0个时钟
STM #0x1800,ST0
STM #0x2900,ST1
STM #0x0FFE0,PMST ;0x0FFA0
****************改变中断向量表位置*****************************
LDM PMST, A
AND #7FH, A
OR #K_IPTR_init, A
STLM A, PMST
NOP
NOP
_HPI_8_IO:
STM #0FFh, GPIOCR
STM #0AAh, GPIOSR
NOP
NOP
_McBSP_init:
*********************串行端口复位******************************************
STM #SPCR10_SUBADDR,SPSA0 ;复位串行端口
STM #0000h,SPSD0 ;/RRST=0 ;控制寄存器1配置
STM #SPCR20_SUBADDR,SPSA0
STM #0000h,SPSD0 ;/XRST=0 ;控制寄存器2配置
RPT #512
NOP
STM #PCR0_SUBADDR,SPSA0
STM #3F25h,SPSD0
RPT #512
NOP
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -