/*-------------------------------------------------------
文 件 名 : C5402DEF.H
创 建 人 : DSP菜鸟 HotPower@126.com
创 建 日 期 : 2006.6.09 11:19
最近修改日期 : 2006.6.13 10:56
创 建 地 点 : 西安大雁塔村队部
版 本 号 : V2.18 (菜鸟完善版)
备 注 : 由此文件出现的问题,DSP菜鸟不负任何责任
将不断完善本头文件。
-------------------------------------------------------*/
#ifndef __C5402DEF_H
#define __C5402DEF_H
typedef volatile unsigned int TI_REG;
#define Disable() asm(" ssbx intm");
#define Enable() asm(" rsbx intm");
#define idle(x) asm(" IDLE " :x:);
#define idle1() asm(" IDLE 1");
#define idle2() asm(" IDLE 2");
#define idle3() asm(" IDLE 3");
/*---------------------------------------
TCR位定义
----------------------------------------*/
#define TDDR 0//0~3
#define TSS 4
#define PSC 6//6~9
#define FREE 10
#define SOFT 11
/*---------------------------------------
IMR位定义
----------------------------------------*/
#define INT0 0
#define INT1 1
#define INT2 2
#define TINT0 3
#define BRINT0 4
#define BXINT0 5
#define TINT1 7
#define INT3 8
#define HPINT 9
#define BRINT1 10
#define BXINT1 11
#define DMAC0 6
#define DMAC1 7
#define DMAC2 10
#define DMAC3 11
#define DMAC4 12
#define DMAC5 13
/*---------------------------------------
ST0位定义
----------------------------------------*/
#define OVB 9
#define OVA 10
#define C 11
#define TC 12
/*---------------------------------------
ST1位定义
----------------------------------------*/
#define SXM 8
#define OVM 9
#define INTM 11
#define HM 12
#define XF 13
#define CPL 14
#define BRAF 15
typedef volatile union _TI_UMcBSP{//McBSP地址冲突处理
TI_REG SPCR1;//串行接口控制寄存器1
TI_REG SPCR2;//串行接口控制寄存器2
TI_REG RCR1;//接收控制寄存器1
TI_REG RCR2;//接收控制寄存器2
TI_REG XCR1;//发送控制寄存器1
TI_REG XCR2;//发送控制寄存器2
TI_REG SRGR1;//采样率发生器寄存器1
TI_REG SRGR2;//采样率发生器寄存器2
TI_REG MCR1;//多通道寄存器1
TI_REG MCR2;//多通道寄存器2
TI_REG RCERA;//接收通道使能寄存器段A
TI_REG RCERB;//接收通道使能寄存器段B
TI_REG XCERA;//发送通道使能寄存器段A
TI_REG XCERB;//发送通道使能寄存器段B
TI_REG PCR;//引脚控制寄存器
}TI_UMcBSP;
typedef union _TI_UDMA {//DMA地址冲突处理
TI_REG DMSRC0;//DMA通道源地址寄存器0
TI_REG DMDST0;//DMA通道目的地址寄存器0
TI_REG DMCTR0;//DMA通道单元计数寄存器0
TI_REG DMSFC0;//DMA通道同步事件和帧寄存器0
TI_REG DMMCR0;//DMA通道传输模式控制寄存器0
TI_REG DMSRC1;//DMA通道源地址寄存器1
TI_REG DMDST1;//DMA通道目的地址寄存器1
TI_REG DMCTR1;//DMA通道单元计数寄存器1
TI_REG DMSFC1;//DMA通道同步事件和帧寄存器1
TI_REG DMMCR1;//DMA通道传输模式控制寄存器1
TI_REG DMSRC2;//DMA通道源地址寄存器2
TI_REG DMDST2;//DMA通道目的地址寄存器2
TI_REG DMCTR2;//DMA通道单元计数寄存器2
TI_REG DMSFC2;//DMA通道同步事件和帧寄存器2
TI_REG DMMCR2;//DMA通道传输模式控制寄存器2
TI_REG DMSRC3;//DMA通道源地址寄存器3
TI_REG DMDST3;//DMA通道目的地址寄存器3
TI_REG DMCTR3;//DMA通道单元计数寄存器3
TI_REG DMSFC3;//DMA通道同步事件和帧寄存器3
TI_REG DMMCR3;//DMA通道传输模式控制寄存器3
TI_REG DMSRC4;//DMA通道源地址寄存器4
TI_REG DMDST4;//DMA通道目的地址寄存器4
TI_REG DMCTR4;//DMA通道单元计数寄存器4
TI_REG DMSFC4;//DMA通道同步事件和帧寄存器4
TI_REG DMMCR4;//DMA通道传输模式控制寄存器4
TI_REG DMSRC5;//DMA通道源地址寄存器5
TI_REG DMDST5;//DMA通道目的地址寄存器5
TI_REG DMCTR5;//DMA通道单元计数寄存器5
TI_REG DMSFC5;//DMA通道同步事件和帧寄存器5
TI_REG DMMCR5;//DMA通道传输模式控制寄存器5
TI_REG DMSRCP;//DMA源程序页地址(公用的通道)
TI_REG DMDSTP;//DMA目的程序页地址(公用的通道)
TI_REG DMIDX0;//DMA单元变址寄存器0
TI_REG DMIDX1;//DMA单元变址寄存器1
TI_REG DMFRI0;//DMA帧变址寄存器0
TI_REG DMFRI1;//DMA帧变址寄存器1
TI_REG DMGSA;//DMA全局源地址重载寄存器
TI_REG DMGDA;//DMA全局目的地址重载寄存器
TI_REG DMGCR;//DMA全局计数重载寄存器
TI_REG DMGFR;//DMA全局帧计数重载寄存器
}TI_UDMA;
typedef volatile struct _TI_SREG {
//0x0000
TI_REG IMR;//中断屏蔽寄存器
TI_REG IFR;//中断标志寄存器
TI_REG Reserved0[4]; //保留4个空位
TI_REG ST0;//状态寄存器0
TI_REG ST1;//状态寄存器1
TI_REG AL;//累加器A低16位
TI_REG AH;//累加器A高16位
TI_REG AG;//累加器A保护位
TI_REG BL;//累加器B低16位
TI_REG BH;//累加器B高16位
TI_REG BG;//累加器B保护位
TI_REG TREG;//临时寄存器
TI_REG TRN;
//0x0010
TI_REG AR0;//辅助寄存器0
TI_REG AR1;//辅助寄存器1
TI_REG AR2;//辅助寄存器2
TI_REG AR3;//辅助寄存器3
TI_REG AR4;//辅助寄存器4
TI_REG AR5;//辅助寄存器5
TI_REG AR6;//辅助寄存器6
TI_REG AR7;//辅助寄存器7
TI_REG SP;//堆栈指针
TI_REG BK;//缓冲大小寄存器
TI_REG BRC;//块重复计数器
TI_REG RSA;//块重复起始地址寄存器
TI_REG REA;//块重复结束地址寄存器
TI_REG PMST;//处理器工作模式状态寄存器
TI_REG XPC;//程序计数器扩展寄存器
TI_REG Reserved1[1]; //保留1个空位
//0x0020
TI_REG DRR20;//数据接收寄存器2
TI_REG DRR10;//数据接收寄存器1
TI_REG DXR20;//数据发送寄存器2
TI_REG DXR10;//数据发送寄存器1
TI_REG TIM;//定时器寄存器
TI_REG PRD;//定时器周期寄存器
TI_REG TCR;//定时器控制寄存器
TI_REG Reserved2[1]; //保留1个空位
TI_REG SWWSR;//软件等待状态寄存器
TI_REG BSCR;//分区状态寄存器
TI_REG Reserved3[1]; //保留1个空位
TI_REG SWCR;//软件等待状态控制寄存器
TI_REG HPIC;//HPI控制寄存器
TI_REG Reserved4[3]; //保留3个空位
//0x0030
TI_REG TIM1;//定时器寄存器1
TI_REG PRD1;//定时器周期寄存器1
TI_REG TCR1;//定时器控制寄存器1
TI_REG Reserved5[5]; //保留5个空位
TI_REG SPSA0;//子区寻址寄存器0
TI_UMcBSP SPSD0;//子区数据寄存器0
TI_REG Reserved6[2]; //保留2个空位
TI_REG GPIOCR;//GPIO控制寄存器
TI_REG GPIOSR;//GPIO状态寄存器
TI_REG Reserved7[2]; //保留2个空位
//0x0040
TI_REG DRR21;//数据接收寄存器2
TI_REG DRR11;//数据接收寄存器1
TI_REG DXR21;//数据发送寄存器2
TI_REG DXR11;//数据发送寄存器1
TI_REG Reserved8[4]; //保留4个空位
TI_REG SPSA1;//子区寻址寄存器1
TI_UMcBSP SPSD1;//子区数据寄存器1
TI_REG Reserved9[10]; //保留10个空位
TI_REG DMPREC;//DMA通道优先级和使能控制寄存器
TI_REG DMSA;//DMA子区寻址寄存器
TI_UDMA DMSDI;//带子区寻址自动增加的DMA子区数据寄存器
TI_UDMA DMSDN;//子区数据寄存器
TI_REG CLKMD;//时钟模式寄存器
TI_REG Reserved10[7]; //保留7个空位
}TI_SREG, *TI_PSREG;
#define TI_BASE_SREG ((TI_SREG *) 0x0000)//定义硬件结构指针(硬件地址)
const TI_PSREG SREG = TI_BASE_SREG;//定义全局结构指针变量REGS
typedef volatile struct _TI_McBSP {
TI_REG DRR2;//数据接收寄存器2
TI_REG DRR1;//数据接收寄存器1
TI_REG DXR2;//数据发送寄存器2
TI_REG DXR1;//数据发送寄存器1
TI_REG Reserved[20]; //保留20个空位
TI_REG SPSA;//子区寻址寄存器
TI_UMcBSP SPSD;//子区数据寄存器
}TI_McBSP, *TI_PMcBSP;
#define TI_BASE_McBSP0 ((TI_McBSP *) 0x0020)//定义硬件结构指针(硬件地址)
#define TI_BASE_McBSP1 ((TI_McBSP *) 0x0040)//定义硬件结构指针(硬件地址)
const TI_PMcBSP McBSP0 = TI_BASE_McBSP0;//定义全局结构指针变量McBSP0
const TI_PMcBSP McBSP1 = TI_BASE_McBSP1;//定义全局结构指针变量McBSP1
typedef volatile struct _TI_DMA {
TI_REG DMPREC;//DMA通道优先级和使能控制寄存器
TI_REG DMSA;//DMA子区寻址寄存器
TI_UDMA DMSDI;//带子区寻址自动增加的DMA子区数据寄存器
TI_UDMA DMSDN;//子区数据寄存器
}TI_DMA, *TI_PDMA;
#define TI_BASE_DMA ((TI_DMA *) 0x0054)//定义硬件结构指针(硬件地址)
const TI_PDMA DMA = TI_BASE_DMA;//定义全局结构指针变量DMA
typedef volatile struct _TI_TIMER {
TI_REG TIM;//定时器寄存器
TI_REG PRD;//定时器周期寄存器
TI_REG TCR;//定时器控制寄存器
}TI_TIMER, *TI_PTIMER;
#define TI_BASE_TIMER0 ((TI_TIMER *) 0x0024)//定义硬件结构指针(硬件地址)
#define TI_BASE_TIMER1 ((TI_TIMER *) 0x0030)//定义硬件结构指针(硬件地址)
const TI_PTIMER TIMER0 = TI_BASE_TIMER0;//定义全局结构指针变量TIMER0
const TI_PTIMER TIMER1 = TI_BASE_TIMER1;//定义全局结构指针变量TIMER1
#endif // __C5402DEF_H