/*----------------------------------------------------------<br />文 件 名 : C5402CFG.H(DSP/BIOS版)<br />创 建 人 : DSP菜鸟 HotPower@126.com<br />创 建 日 期 : 2006.6.09 11:19<br />最近修改日期 : 2008.5.14 16:08 <br />创 建 地 点 : 西安大雁塔村队部(http://hotpower.21ic.org)<br />版 本 号 : V3.01 (DSP/BIOS版)<br />修 改 理 由 : 修正和增订内容<br /> 增加对C++多文件系统的支持<br /> 必须在系统中同时加入C5402CFG.C<br />备 注 : 由此文件出现的问题,DSP菜鸟不负任何责任<br /> 菜农将不断更新和完善本头文件。<br />声 明 : 雁塔菜农拥有对本文件的最终解释和灌溉权。 <br />----------------------------------------------------------*/<br /><br /><br />#ifndef __C5402CFG_H<br />#define __C5402CFG_H<br /><br />#ifdef __cplusplus<br />extern "C"<br />{<br />#endif<br /><br />#define nop() asm(" nop");//空操作<br />#define __nop() asm(" nop");//空操作<br />#define _nop_() asm(" nop");//空操作<br /><br />typedef volatile unsigned int TI_REG;<br /><br />/*-------------------------------------------<br /> 以下是增订部分,去除(1<<15)编译警告<br />-------------------------------------------*/<br />#define __0 (TI_REG)0 <br />#define __1 (TI_REG)1 <br />#define __2 (TI_REG)2 <br />#define __3 (TI_REG)3 <br />#define __4 (TI_REG)4 <br />#define __5 (TI_REG)5 <br />#define __6 (TI_REG)6 <br />#define __7 (TI_REG)7 <br />#define __8 (TI_REG)8 <br />#define __9 (TI_REG)9 <br />#define __10 (TI_REG)10<br />#define __11 (TI_REG)11<br />#define __12 (TI_REG)12<br />#define __13 (TI_REG)13<br />#define __14 (TI_REG)14<br />#define __15 (TI_REG)15<br />/*-----------------------------------------*/<br /><br />/*----------------------------------------<br /> 基本位定义<br />----------------------------------------*/<br />#define BIT0 0//<br />#define BIT1 1//<br />#define BIT2 2//<br />#define BIT3 3//<br />#define BIT4 4//<br />#define BIT5 5//<br />#define BIT6 6//<br />#define BIT7 7//<br />#define BIT8 8//<br />#define BIT9 9//<br />#define BIT10 10//<br />#define BIT11 11//<br />#define BIT12 12//<br />#define BIT13 13//<br />#define BIT14 14//<br />#define BIT15 15//<br /><br />/*---------------------------------------<br /> GPIOCR位定义<br />----------------------------------------*/<br />#define GPIOCR_DIR0 0//I/O引脚方向位0<br />#define GPIOCR_DIR1 1//I/O引脚方向位1<br />#define GPIOCR_DIR2 2//I/O引脚方向位2<br />#define GPIOCR_DIR3 3//I/O引脚方向位3<br />#define GPIOCR_DIR4 4//I/O引脚方向位4<br />#define GPIOCR_DIR5 5//I/O引脚方向位5<br />#define GPIOCR_DIR6 6//I/O引脚方向位6<br />#define GPIOCR_DIR7 7//I/O引脚方向位7<br /><br />#define GPIOCR_TOUT1 15//定时器1输出使能位<br /><br />/*---------------------------------------<br /> GPIOSR位定义<br />----------------------------------------*/<br />#define GPIOSR_IO0 0//I/O引脚状态位0<br />#define GPIOSR_IO1 1//I/O引脚状态位1<br />#define GPIOSR_IO2 2//I/O引脚状态位2<br />#define GPIOSR_IO3 3//I/O引脚状态位3<br />#define GPIOSR_IO4 4//I/O引脚状态位4<br />#define GPIOSR_IO5 5//I/O引脚状态位5<br />#define GPIOSR_IO6 6//I/O引脚状态位6<br />#define GPIOSR_IO7 7//I/O引脚状态位7<br /><br />/*---------------------------------------<br /> HPIC位定义<br />----------------------------------------*/<br />#define HPIC_DSPINT 1//主机处理器到C5402的中断(R-0)<br />#define HPIC_HINT 2//C5402到主机处理器的中断引脚状态(R/W-1)<br />#define HPIC_HRDY 3//HRDY引脚状态(R)<br />#define HPIC_FETCH 4//主机取数据请求(R-0)<br />#define HPIC_XHPIA 5//扩展地址使能(R)<br /><br />/*---------------------------------------<br /> CLKMD位定义<br />----------------------------------------*/<br />#define CLKMD_PLLSTATUS 0//PLL状态位<br />#define CLKMD_PLLNDIV 1//PLL时钟发生器选择<br />#define CLKMD_PLLONOFF 2//PLL开关位<br />#define CLKMD_PLLCOUNT 3//PLL计数值3~10<br />#define CLKMD_PLLDIV 11//PLL乘法系数(除法器)<br />#define CLKMD_PLLMUL 12//PLL乘法系数(乘法器)12~15<br /><br />/*---------------------------------------<br /> PMST位定义<br />----------------------------------------*/<br />#define PMST_SST 0//存储饱和位<br />#define PMST_SMUL 1//乘法饱和位<br />#define PMST_CLKOFF 2//CLKOUT禁止位<br />#define PMST_DROM 3//数据ROM位<br />#define PMST_AVIS 4//地址可见性模式位<br />#define PMST_OVLY 5//RAM重叠位<br />#define PMST_MP_MC 6//微处理器/微计算机模式位<br />#define PMST_IPTR 7//中断向量指针7~15<br /><br />/*---------------------------------------<br /> TCR位定义<br />----------------------------------------*/<br />#define TCR_TDDR 0//定时器分频系数0~3<br />#define TCR_TSS 4//定时器停止状态<br />#define TCR_TRB 5//定时器重载<br />#define TCR_PSC 6//计数器预定标计数器6~9<br />#define TCR_FREE 10//<br />#define TCR_SOFT 11//<br /><br />/*---------------------------------------<br /> IFR位定义<br />----------------------------------------*/<br />#define IFR_INT0 0//外部中断0<br />#define IFR_INT1 1//外部中断1<br />#define IFR_INT2 2//外部中断2<br />#define IFR_TINT0 3//定时中断0<br /><br />#define IFR_BRINT0 4//McBSP接收中断0<br />#define IFR_BXINT0 5//McBSP发送中断0<br /><br />#define IFR_TINT1 7//定时中断1<br /><br />#define IFR_INT3 8//外部中断3<br />#define IFR_HPINT 9//主机接口中断<br />#define IFR_BRINT1 10//McBSP接收中断1<br />#define IFR_BXINT1 11//McBSP发送中断1<br /><br />#define IFR_DMAC0 6//DMA通道中断0<br />#define IFR_DMAC1 7//DMA通道中断1<br /><br />#define IFR_DMAC2 10//DMA通道中断2<br />#define IFR_DMAC3 11//DMA通道中断3<br />#define IFR_DMAC4 12//DMA通道中断4<br />#define IFR_DMAC5 13//DMA通道中断5<br /><br />/*---------------------------------------<br /> IMR位定义<br />----------------------------------------*/<br />#define IMR_INT0 0//外部中断0<br />#define IMR_INT1 1//外部中断1<br />#define IMR_INT2 2//外部中断2<br />#define IMR_TINT0 3//定时中断0<br /><br />#define IMR_BRINT0 4//McBSP接收中断0<br />#define IMR_BXINT0 5//McBSP发送中断0<br /><br />#define IMR_TINT1 7//定时中断1<br /><br />#define IMR_INT3 8//外部中断3<br />#define IMR_HPINT 9//主机接口中断<br />#define IMR_BRINT1 10//McBSP接收中断1<br />#define IMR_BXINT1 11//McBSP发送中断1<br /><br />#define IMR_DMAC0 6//DMA通道中断0<br />#define IMR_DMAC1 7//DMA通道中断1<br /><br />#define IMR_DMAC2 10//DMA通道中断2<br />#define IMR_DMAC3 11//DMA通道中断3<br />#define IMR_DMAC4 12//DMA通道中断4<br />#define IMR_DMAC5 13//DMA通道中断5<br /><br /><br />/*---------------------------------------<br /> ST0位定义<br />----------------------------------------*/<br />#define ST0_DP 0//数据存储器页面指针0~8,共9位<br />#define ST0_OVB 9//累加器B溢出标志位<br />#define ST0_OVA 10//累加器A溢出标志位<br />#define ST0_C 11//进位或不借位标志<br />#define ST0_TC 12//测试/控制标志位<br />#define ST0_ARP 13//辅助寄存器(AR)指针13~15,共3位<br /><br />/*---------------------------------------<br /> ST1位定义<br />----------------------------------------*/<br />#define ST1_ASM 0//累加器模式位0~4<br />#define ST1_CMPT 5//修改模式位<br />#define ST1_FRCT 6//小数方式位<br />#define ST1_C16 7//双16位/双精度算术模式位<br />#define ST1_SXM 8//符号扩展模式位<br />#define ST1_OVM 9//溢出模式位<br />#define ST1_INTM 11//中断模式位<br />#define ST1_HM 12//保持模式位<br />#define ST1_XF 13//XF引脚状态位<br />#define ST1_CPL 14//相对直接寻址译码器模式位<br />#define ST1_BRAF 15//块重复操作标志位<br /><br />/*---------------------------------------<br /> BSCR位定义<br />----------------------------------------*/<br />#define BSCR_EXIO 0//外部总线接口关断位<br />#define BSCR_BH 1//总线保持位BH<br />#define BSCR_HBH 2//主机接口总线保持位<br /><br />#define BSCR_IPIRQ 8//CPU处理器之间的中断请求位<br />#define BSCR_PSDS 11//程序空间读/数据空间读访问<br />#define BSCR_BNKCMP 12//分区比较位12~15<br /><br />/*---------------------------------------<br /> DMPREC位定义<br />----------------------------------------*/<br />#define DMPREC_DE 0//DMA通道使能0~5<br />#define DMPREC_DE0 0//DMA0通道使能<br />#define DMPREC_DE1 1//DMA1通道使能<br />#define DMPREC_DE2 2//DMA2通道使能<br />#define DMPREC_DE3 3//DMA3通道使能<br />#define DMPREC_DE4 4//DMA4通道使能<br />#define DMPREC_DE5 5//DMA5通道使能<br /><br />#define DMPREC_INTOSEL 6//中断多路控制位6~7<br /><br />#define DMPREC_DPRC 8//DMA通道优先级控制位0~5<br />#define DMPREC_DPRC0 8//DMA0通道优先级控制<br />#define DMPREC_DPRC1 9//DMA1通道优先级控制<br />#define DMPREC_DPRC2 10//DMA2通道优先级控制<br />#define DMPREC_DPRC3 11//DMA3通道优先级控制<br />#define DMPREC_DPRC4 12//DMA4通道优先级控制<br />#define DMPREC_DPRC5 13//DMA5通道优先级控制<br />#define DMPREC_FREE 15//<br /><br />/*---------------------------------------<br /> SPC位定义<br />----------------------------------------*/<br />#define SPC_DLB 1//数据回送模式位<br />#define SPC_FO 2//数据格式位<br />#define SPC_FSM 3//帧同步模式位<br />#define SPC_MCM 4//时钟模式位<br />#define SPC_TXM 5//发送模式位<br />#define SPC_XRST 6//发送器复位<br />#define SPC_RRST 7//接收器复位<br />#define SPC_IN0 8//输入0<br />#define SPC_IN1 9//输入1<br />#define SPC_RRDY 10//接收准备位<br />#define SPC_XRDY 11//发送准备位<br />#define SPC_XSREMPTY 12//发送移位寄存器空<br />#define SPC_RSRFULL 13//接收移位寄存器满<br />#define SPC_FREE 14//<br />#define SPC_SOFT 15//<br /><br /><br />/*---------------------------------------<br /> BSPCE位定义<br />----------------------------------------*/<br />#define BSPCE_CLKDV 0//内部发送时钟分频系数0~4<br />#define BSPCE_FSP 5//帧同步信号极性设置<br />#define BSPCE_CLKP 6//时钟极性设置<br />#define BSPCE_FE 7//格式扩展<br />#define BSPCE_FIG 8//帧同步信号忽略<br />#define BSPCE_PCM 9//脉冲编码模式<br />#define BSPCE_ABU 10//自动缓冲单元控制10~15<br /><br />#define BSPCE_BXE 10//自动缓冲发送使能<br />#define BSPCE_XH 11//发送缓冲半满<br />#define BSPCE_HALTX 12//自动缓冲发送停止位<br />#define BSPCE_BRE 13//自动缓冲接收使能<br />#define BSPCE_RH 14//接收缓冲半满<br />#define BSPCE_HALTR 15//自动缓冲接收停止位<br /><br /><br /><br />/*---------------------------------------<br /> SPCR1位定义<br />----------------------------------------*/<br />#define SPCR1_RRST 0//接收器复位<br />#define SPCR1_RRDY 1//接收准备好<br />#define SPCR1_RFULL 2//接收移位寄存器满<br />#define SPCR1_RSYNCERR 3//接收同步错<br />#define SPCR1_RINTM 4//接收中断模式4~5<br />#define SPCR1_ABIS 6//ABIS模式<br />#define SPCR1_DXENA 7//DX使能<br />#define SPCR1_CLKSTP 11//时钟停止模式11~12<br />#define SPCR1_RJUST 13//接收符号扩展及判别模式13~14<br />#define SPCR1_DLB 15//数字循环返回<br /><br />/*---------------------------------------<br /> SPCR2位定义<br />----------------------------------------*/<br />#define SPCR2_XRST 0//发送器复位<br />#define SPCR2_XRDY 1//发送准备好<br />#define SPCR2_XEMPTY 2//发送移位寄存器空<br />#define SPCR2_XSYNCERR 3//发生同步错误<br />#define SPCR2_XINTM 4//发送中断模式4~5<br />#define SPCR2_GRST 6//采样率发生器复位<br />#define SPCR2_FRST 7//帧同步发生器复位<br />#define SPCR2_SOFT 8//软件模式<br />#define SPCR2_FREE 9//自由运行模式<br /><br />/*---------------------------------------<br /> PCR位定义<br />----------------------------------------*/<br />#define PCR_CLKRP 0//接收时钟极性<br />#define PCR_CLKXP 1//发送时钟极性<br />#define PCR_FSRP 2//接收帧同步脉冲极性<br />#define PCR_FSXP 3//发送帧同步脉冲极性<br />#define PCR_DR_STAT 4//DR引脚状态位<br />#define PCR_DX_STAT 5//DX引脚状态位<br />#define PCR_CLKS_STAT 6//CLKS引脚状态位<br /><br />#define PCR_CLKRM 8//接收器时钟模式位<br />#define PCR_CLKXM 9//发送器时钟模式位<br />#define PCR_FSRM 10//接收帧同步模式位<br />#define PCR_FSXM 11//发送帧同步模式位<br />#define PCR_RIOEN 12//接收通用I/O模式位<br />#define PCR_XIOEN 13//发送通用I/O模式位<br /><br />/*---------------------------------------<br /> RCR1位定义<br />----------------------------------------*/<br />#define RCR1_RWDLEN1 5//5~7<br />#define RCR1_RFRLEN1 8//8~14<br /><br />/*---------------------------------------<br /> RCR2位定义<br />----------------------------------------*/<br />#define RCR2_RDATDLY 0//0~1<br />#define RCR2_RFIG 2//<br />#define RCR2_RCOMPAND 3//3~4<br />#define RCR2_RWDLEN2 5//5~6<br />#define RCR2_RFRLEN2 8//8~14<br />#define RCR2_RPHASE 15//接收相位<br /><br />/*---------------------------------------<br /> XCR1位定义(*本次修改*)<br />----------------------------------------*/<br />#define XCR1_XWDLEN1 5//5~7 *本次修改*<br />#define XCR1_XFRLEN1 8//8~14 *本次修改*<br /><br />/*---------------------------------------<br /> XCR2位定义(*本次修改*)<br />----------------------------------------*/<br />#define XCR2_XDATDLY 0//0~1<br />#define XCR2_XFIG 2//<br />#define XCR2_XCOMPAND 3//3~4<br />#define XCR2_XWDLEN2 5//5~6<br />#define XCR2_XFRLEN2 8//8~14<br />#define XCR2_XPHASE 15//发送相位<br /><br />/*---------------------------------------<br /> SRGR1位定义<br />----------------------------------------*/<br />#define SRGR1_CLKGDV 0//0~7<br />#define SRGR1_FWID 8//8~15<br /><br />/*---------------------------------------<br /> SRGR2位定义<br />----------------------------------------*/<br />#define SRGR2_FPER 0//0~11//修正处<br />#define SRGR2_FSGM 12//<br />#define SRGR2_CLKSM 13//<br />#define SRGR2_CLKSP 14//<br />#define SRGR2_GSYNC 15//<br /><br />/*---------------------------------------<br /> MCR1位定义<br />----------------------------------------*/<br />#define MCR1_RMCM 0//0<br />#define MCR1_RCBLK 2//2~4<br />#define MCR1_RPABLK 5//5~6<br />#define MCR1_RPBBLK 7//7~8<br /><br />/*---------------------------------------<br /> MCR2位定义<br />----------------------------------------*/<br />#define MCR2_XMCM 0//0~1<br />#define MCR2_XCBLK 2//2~4<br />#define MCR2_XPABLK 5//5~6<br />#define MCR2_XPBBLK 7//7~8<br /><br />/*---------------------------------------<br /> RCERA位定义<br />----------------------------------------*/<br />#define RCERA_0 0<br />#define RCERA_1 1<br />#define RCERA_2 2<br />#define RCERA_3 3<br />#define RCERA_4 4<br />#define RCERA_5 5<br />#define RCERA_6 6<br />#define RCERA_7 7<br />#define RCERA_8 8<br />#define RCERA_9 9<br />#define RCERA_10 10<br />#define RCERA_11 11<br />#define RCERA_12 12<br />#define RCERA_13 13<br />#define RCERA_14 14<br />#define RCERA_15 15<br /><br /><br />/*---------------------------------------<br /> RCERB位定义<br />----------------------------------------*/<br />#define RCERB_0 0<br />#define RCERB_1 1<br />#define RCERB_2 2<br />#define RCERB_3 3<br />#define RCERB_4 4<br />#define RCERB_5 5<br />#define RCERB_6 6<br />#define RCERB_7 7<br />#define RCERB_8 8<br />#define RCERB_9 9<br />#define RCERB_10 10<br />#define RCERB_11 11<br />#define RCERB_12 12<br />#define RCERB_13 13<br />#define RCERB_14 14<br />#define RCERB_15 15<br /><br />/*---------------------------------------<br /> XCERA位定义<br />----------------------------------------*/<br />#define XCERA_0 0<br />#define XCERA_1 1<br />#define XCERA_2 2<br />#define XCERA_3 3<br />#define XCERA_4 4<br />#define XCERA_5 5<br />#define XCERA_6 6<br />#define XCERA_7 7<br />#define XCERA_8 8<br />#define XCERA_9 9<br />#define XCERA_10 10<br />#define XCERA_11 11<br />#define XCERA_12 12<br />#define XCERA_13 13<br />#define XCERA_14 14<br />#define XCERA_15 15<br /><br /><br />/*---------------------------------------<br /> XCERB位定义<br />----------------------------------------*/<br />#define XCERB_0 0<br />#define XCERB_1 1<br />#define XCERB_2 2<br />#define XCERB_3 3<br />#define XCERB_4 4<br />#define XCERB_5 5<br />#define XCERB_6 6<br />#define XCERB_7 7<br />#define XCERB_8 8<br />#define XCERB_9 9<br />#define XCERB_10 10<br />#define XCERB_11 11<br />#define XCERB_12 12<br />#define XCERB_13 13<br />#define XCERB_15 15<br /><br /><br />/*---------------------------------------<br /> 子McBSP地址定义<br />----------------------------------------*/<br />#define SPCR1 0x00;//串行接口控制寄存器1<br />#define SPCR2 0x01;//串行接口控制寄存器2<br />#define RCR1 0x02;//接收控制寄存器1<br />#define RCR2 0x03;//接收控制寄存器2<br />#define XCR1 0x04;//发送控制寄存器1<br />#define XCR2 0x05;//发送控制寄存器2<br />#define SRGR1 0x06;//采样率发生器寄存器1<br />#define SRGR2 0x07;//采样率发生器寄存器2<br />#define MCR1 0x08;//多通道寄存器1<br />#define MCR2 0x09;//多通道寄存器2<br />#define RCERA 0x0a;//接收通道使能寄存器段A<br />#define RCERB 0x0b;//接收通道使能寄存器段B<br />#define XCERA 0x0c;//发送通道使能寄存器段A<br />#define XCERB 0x0d;//发送通道使能寄存器段B<br />#define PCR 0x0e;//引脚控制寄存器<br /><br />/*---------------------------------------<br /> 子DMA地址定义<br />----------------------------------------*/<br />#define DMSRC0 0x00;//DMA通道0源地址寄存器<br />#define DMDST0 0x01;//DMA通道0目的地址寄存器<br />#define DMCTR0 0x02;//DMA通道0单元计数寄存器<br />#define DMSFC0 0x03;//DMA通道0同步事件和帧寄存器<br />#define DMMCR0 0x04;//DMA通道0传输模式控制寄存器<br /><br />#define DMSRC1 0x05;//DMA通道1源地址寄存器<br />#define DMDST1 0x06;//DMA通道1目的地址寄存器<br />#define DMCTR1 0x07;//DMA通道1单元计数寄存器<br />#define DMSFC1 0x08;//DMA通道1同步事件和帧寄存器<br />#define DMMCR1 0x09;//DMA通道1传输模式控制寄存器<br /><br />#define DMSRC2 0x0a;//DMA通道2源地址寄存器<br />#define DMDST2 0x0b;//DMA通道2目的地址寄存器<br />#define DMCTR2 0x0c;//DMA通道2单元计数寄存器<br />#define DMSFC2 0x0d;//DMA通道2同步事件和帧寄存器<br />#define DMMCR2 0x0e;//DMA通道2传输模式控制寄存器<br /><br />#define DMSRC3 0x0f;//DMA通道3源地址寄存器<br />#define DMDST3 0x10;//DMA通道3目的地址寄存器<br />#define DMCTR3 0x11;//DMA通道3单元计数寄存器<br />#define DMSFC3 0x12;//DMA通道3同步事件和帧寄存器<br />#define DMMCR3 0x13;//DMA通道3传输模式控制寄存器<br /><br />#define DMSRC4 0x14;//DMA通道4源地址寄存器<br />#define DMDST4 0x15;//DMA通道4目的地址寄存器<br />#define DMCTR4 0x16;//DMA通道4单元计数寄存器<br />#define DMSFC4 0x17;//DMA通道4同步事件和帧寄存器<br />#define DMMCR4 0x18;//DMA通道4传输模式控制寄存器<br /><br />#define DMSRC5 0x19;//DMA通道5源地址寄存器<br />#define DMDST5 0x1a;//DMA通道5目的地址寄存器<br />#define DMCTR5 0x1b;//DMA通道5单元计数寄存器<br />#define DMSFC5 0x1c;//DMA通道5同步事件和帧寄存器<br />#define DMMCR5 0x1d;//DMA通道5传输模式控制寄存器<br /><br />#define DMSRCP 0x1e;//DMA源程序页地址(公用的通道)<br />#define DMDSTP 0x1f;//DMA目的程序页地址(公用的通道)<br /> <br />#define DMIDX0 0x20;//DMA单元变址寄存器0<br />#define DMIDX1 0x21;//DMA单元变址寄存器1<br />#define DMFRI0 0x22;//DMA帧变址寄存器0<br />#define DMFRI1 0x23;//DMA帧变址寄存器1<br />#define DMGSA 0x24;//DMA全局源地址重载寄存器<br />#define DMGDA 0x25;//DMA全局目的地址重载寄存器<br />#define DMGCR 0x26;//DMA全局计数重载寄存器<br />#define DMGFR 0x27;//DMA全局帧计数重载寄存器<br /><br />typedef volatile struct _TI_SREG {<br />//0x0000<br /> TI_REG IMR;//中断屏蔽寄存器(0x00)<br /> TI_REG IFR;//中断标志寄存器(0x01)<br /> TI_REG Reserved0[4]; //保留4个空位<br /> TI_REG ST0;//状态寄存器0(0x06)<br /> TI_REG ST1;//状态寄存器1(0x07)<br /> TI_REG AL;//累加器A低16位(0x08)<br /> TI_REG AH;//累加器A高16位(0x09)<br /> TI_REG AG;//累加器A保护位(0x0a)<br /> TI_REG BL;//累加器B低16位(0x0b)<br /> TI_REG BH;//累加器B高16位(0x0c)<br /> TI_REG BG;//累加器B保护位(0x0d)<br /> TI_REG TREG;//临时寄存器(0x0e)<br /> TI_REG TRN;//发送寄存器(0x0f)<br />//0x0010<br /> TI_REG AR0;//辅助寄存器0(0x10)<br /> TI_REG AR1;//辅助寄存器1(0x11)<br /> TI_REG AR2;//辅助寄存器2(0x12)<br /> TI_REG AR3;//辅助寄存器3(0x13)<br /> TI_REG AR4;//辅助寄存器4(0x14)<br /> TI_REG AR5;//辅助寄存器5(0x15)<br /> TI_REG AR6;//辅助寄存器6(0x16)<br /> TI_REG AR7;//辅助寄存器7(0x17)<br /> TI_REG SP;//堆栈指针(0x18)<br /> TI_REG BK;//缓冲大小寄存器(0x19)<br /> TI_REG BRC;//块重复计数器(0x1a)<br /> TI_REG RSA;//块重复起始地址寄存器(0x1b)<br /> TI_REG REA;//块重复结束地址寄存器(0x1c)<br /> TI_REG PMST;//处理器工作模式状态寄存器(0x1d)<br /> TI_REG XPC;//程序计数器扩展寄存器(0x1e)<br /> TI_REG Reserved1[1]; //保留1个空位(0x1f)<br />//0x0020<br /> TI_REG DRR20;//数据接收寄存器2(0x20)<br /> TI_REG DRR10;//数据接收寄存器1(0x21)<br /> TI_REG DXR20;//数据发送寄存器2(0x22)<br /> TI_REG DXR10;//数据发送寄存器1(0x23)<br /> TI_REG TIM;//定时器寄存器 (0x24)<br /> TI_REG PRD;//定时器周期寄存器 (0x25)<br /> TI_REG TCR;//定时器控制寄存器 (0x26)<br /> TI_REG Reserved2[1]; //保留1个空位(0x27)<br /> TI_REG SWWSR;//软件等待状态寄存器(0x28)<br /> TI_REG BSCR;//分区状态寄存器(0x29)<br /> TI_REG Reserved3[1]; //保留1个空位(0x2a)<br /> TI_REG SWCR;//软件等待状态控制寄存器(0x2b)<br /> TI_REG HPIC;//HPI控制寄存器(0x2c)<br /> TI_REG Reserved4[3]; //保留3个空位(0x2d~0x2f)<br />//0x0030<br /> TI_REG TIM1;//定时器寄存器1(0x30)<br /> TI_REG PRD1;//定时器周期寄存器1(0x31)<br /> TI_REG TCR1;//定时器控制寄存器1(0x32)<br /> TI_REG Reserved5[5]; //保留5个空位(0x33~37)<br /> TI_REG SPSA0;//子区寻址寄存器0(0x38)<br /> TI_REG SPSD0;//子区数据寄存器0(0x39)<br /> TI_REG Reserved6[2]; //保留2个空位(0x3a~0x3b)<br /> TI_REG GPIOCR;//GPIO控制寄存器(0x3c)<br /> TI_REG GPIOSR;//GPIO状态寄存器(0x3d)<br /> TI_REG Reserved7[2]; //保留2个空位(0x3e,0x3f)<br />//0x0040<br /> TI_REG DRR21;//数据接收寄存器2(0x40)<br /> TI_REG DRR11;//数据接收寄存器1(0x41)<br /> TI_REG DXR21;//数据发送寄存器2(0x42)<br /> TI_REG DXR11;//数据发送寄存器1(0x43)<br /> TI_REG Reserved8[4]; //保留4个空位(0x44~0x47)<br /> TI_REG SPSA1;//子区寻址寄存器1(0x48)<br /> TI_REG SPSD1;//子区数据寄存器1(0x49)<br /> TI_REG Reserved9[10]; //保留10个空位(0x4a)<br /> TI_REG DMPREC;<br /> //DMA通道优先级和使能控制寄存器(0x54)<br /> TI_REG DMSA;//DMA子区寻址寄存器(0x55)<br /> TI_REG DMSDI;//带子区寻址自动增加的DMA子区数据寄存器(0x56)<br /> TI_REG DMSDN;//子区数据寄存器(0x57)<br /> TI_REG CLKMD;//时钟模式寄存器(0x58)<br /> TI_REG Reserved10[7]; //保留7个空位(0x59~0x5f)<br />}TI_SREG, *TI_PSREG;<br /><br />#define TI_BASE_SREG ((TI_SREG *) 0x0000)//定义硬件结构指针(硬件地址)<br /><br />/*--------------------------------------------------------------------------<br />应用举例:<br /> SREG->IMR = 0x0000;<br /> SREG->IFR = 0xffff;<br /> SREG->PMST = (0x1ff << PMST_IPTR) | (1 << PMST_MP_MC) | (1 << PMST_OVLY) | (1 << PMST_CLKOFF);<br /> SREG->IMR = (1 << IMR_TINT0);//允许TINT0中断<br /> Enable();//开中断<br /> for(;;) {<br /> SREG->ST1 ^= (1 << ST1_XF);<br /> }<br />---------------------------------------------------------------------------*/<br /><br />typedef volatile struct _TI_McBSP0 {<br /> TI_REG DRR2;//数据接收寄存器2(0x20)<br /> TI_REG DRR1;//数据接收寄存器1(0x21)<br /> TI_REG DXR2;//数据发送寄存器2(0x22)<br /> TI_REG DXR1;//数据发送寄存器1(0x23)<br /> TI_REG Reserved[20]; //保留20个空位<br /> TI_REG SPSA;//子区寻址寄存器(0x38)<br /> TI_REG SPSD;//子区数据寄存器(0x39)<br />}TI_McBSP0, *TI_PMcBSP0;<br /><br />#define TI_BASE_McBSP0 ((TI_McBSP0 *) 0x0020)//定义硬件结构指针(硬件地址)<br /><br /><br />typedef volatile struct _TI_McBSP1 {<br /> TI_REG DRR2;//数据接收寄存器2(0x40)<br /> TI_REG DRR1;//数据接收寄存器1(0x41)<br /> TI_REG DXR2;//数据发送寄存器2(0x42)<br /> TI_REG DXR1;//数据发送寄存器1(0x43)<br /> TI_REG Reserved[4]; //保留20个空位<br /> TI_REG SPSA;//子区寻址寄存器(0x48)<br /> TI_REG SPSD;//子区数据寄存器(0x49)<br />}TI_McBSP1, *TI_PMcBSP1;<br /><br />#define TI_BASE_McBSP1 ((TI_McBSP1 *) 0x0040)//定义硬件结构指针(硬件地址)<br /><br /><br />/*--------------------------------------------------------------------------<br />应用举例:<br /> McBSP0->DXR10 = 0xaa;//向串口0数据发送寄存器1发送数据0xaa<br /> McBSP0->SPSA0 = SPCR1;//设置子地址(串行接口控制寄存器1)<br /> McBSP0->SPSD0 = 0x00;//SPCR1 = 0x00//向串口1串行接口控制寄存器1发送命令0x00<br />---------------------------------------------------------------------------*/<br /><br /><br />typedef volatile struct _TI_DMA {<br /> TI_REG DMPREC;//DMA通道优先级和使能控制寄存器(0x54)<br /> TI_REG DMSA;//DMA子区寻址寄存器(0x55)<br /> TI_REG DMSDI;//带子区寻址自动增加的DMA子区数据寄存器(0x56)<br /> TI_REG DMSDN;//子区数据寄存器(0x57)<br />}TI_DMA, *TI_PDMA;<br /><br />#define TI_BASE_DMA ((TI_DMA *) 0x0054)//定义硬件结构指针(硬件地址)<br /><br /><br />typedef volatile struct _TI_TIMER {<br /> TI_REG TIM;//定时器寄存器<br /> TI_REG PRD;//定时器周期寄存器<br /> TI_REG TCR;//定时器控制寄存器<br />}TI_TIMER, *TI_PTIMER;<br /><br />#define TI_BASE_TIMER0 ((TI_TIMER *) 0x0024)//定义硬件结构指针(硬件地址)<br />#define TI_BASE_TIMER1 ((TI_TIMER *) 0x0030)//定义硬件结构指针(硬件地址)<br /><br />extern void _delay_loop_(unsigned int);<br />extern const TI_PSREG SREG;//定义全局结构指针变量REGS<br />extern const TI_PMcBSP0 McBSP0;//定义全局结构指针变量McBSP0<br />extern const TI_PMcBSP1 McBSP1;//定义全局结构指针变量McBSP1<br />extern const TI_PDMA DMA;//定义全局结构指针变量DMA<br />extern const TI_PTIMER TIMER0;//定义全局结构指针变量TIMER0<br />extern const TI_PTIMER TIMER1;//定义全局结构指针变量TIMER1<br /><br /><br />/*--------------------------------------------------------------------------<br />应用举例:<br /> SREG->IMR = 0x0000;<br /> SREG->IFR = 0xffff;<br /> TIMER0->PRD = 250;//设置定时周期<br /> TIMER0->TCR &= ~(1 << TCR_TSS);//启动定时器0<br /> SREG->IMR = (1 << IMR_TINT0);//允许TINT0中断<br /> Enable();//开中断<br />---------------------------------------------------------------------------*/<br /><br />#ifdef __cplusplus<br />}<br />#endif<br /><br />#endif // __C5402CFG_H<br /><br /> |
|