📄 c5402cfg.h
字号:
/*----------------------------------------------------------
文 件 名 : C5402CFG.H(DSP/BIOS版)
创 建 人 : DSP菜鸟 HotPower@126.com
创 建 日 期 : 2006.6.09 11:19
最近修改日期 : 2008.6.13 18:08
创 建 地 点 : 西安大雁塔村队部(http://hotpower.21ic.org)
版 本 号 : V3.02 (DSP/BIOS版)
修 改 理 由 : 修正和增订内容
增加对C++多文件系统的支持
必须在系统中同时加入C5402CFG.C
备 注 : 由此文件出现的问题,DSP菜鸟不负任何责任
菜农将不断更新和完善本头文件。
声 明 : 雁塔菜农拥有对本文件的最终解释和灌溉权。
----------------------------------------------------------*/
#ifndef __C5402CFG_H
#define __C5402CFG_H
#ifdef __cplusplus
extern "C"
{
#endif
//下列3句是IAR的习惯~~~
#define __disable_interrupt() asm(" ssbx intm");//关中断
#define __enable_interrupt() asm(" rsbx intm");//开中断
#define __no_operation() asm(" nop");//空操作
#define nop() asm(" nop");//空操作
#define __nop() asm(" nop");//空操作
#define _nop_() asm(" nop");//空操作
#define idle() asm(" IDLE 1");
#define idle1() asm(" IDLE 1");//CPU暂停,CPU时钟停止\
;//非屏蔽内部硬件中断\
;//非屏蔽外部硬件中断
#define idle2() asm(" IDLE 2");//CPU时钟停止
#define idle3() asm(" IDLE 3");//外设时钟停止
#define SWI_Reset() asm(" TRAP 0");//DSP软中断复位
typedef volatile unsigned int TI_REG;
/*-------------------------------------------
以下是增订部分,去除(1<<15)编译警告
-------------------------------------------*/
#define __0 (TI_REG)0
#define __1 (TI_REG)1
#define __2 (TI_REG)2
#define __3 (TI_REG)3
#define __4 (TI_REG)4
#define __5 (TI_REG)5
#define __6 (TI_REG)6
#define __7 (TI_REG)7
#define __8 (TI_REG)8
#define __9 (TI_REG)9
#define __10 (TI_REG)10
#define __11 (TI_REG)11
#define __12 (TI_REG)12
#define __13 (TI_REG)13
#define __14 (TI_REG)14
#define __15 (TI_REG)15
/*-----------------------------------------*/
/*----------------------------------------
基本位定义
----------------------------------------*/
#define BIT0 0//
#define BIT1 1//
#define BIT2 2//
#define BIT3 3//
#define BIT4 4//
#define BIT5 5//
#define BIT6 6//
#define BIT7 7//
#define BIT8 8//
#define BIT9 9//
#define BIT10 10//
#define BIT11 11//
#define BIT12 12//
#define BIT13 13//
#define BIT14 14//
#define BIT15 15//
/*---------------------------------------
GPIOCR位定义
----------------------------------------*/
#define GPIOCR_DIR0 0//I/O引脚方向位0
#define GPIOCR_DIR1 1//I/O引脚方向位1
#define GPIOCR_DIR2 2//I/O引脚方向位2
#define GPIOCR_DIR3 3//I/O引脚方向位3
#define GPIOCR_DIR4 4//I/O引脚方向位4
#define GPIOCR_DIR5 5//I/O引脚方向位5
#define GPIOCR_DIR6 6//I/O引脚方向位6
#define GPIOCR_DIR7 7//I/O引脚方向位7
#define GPIOCR_TOUT1 15//定时器1输出使能位
/*---------------------------------------
GPIOSR位定义
----------------------------------------*/
#define GPIOSR_IO0 0//I/O引脚状态位0
#define GPIOSR_IO1 1//I/O引脚状态位1
#define GPIOSR_IO2 2//I/O引脚状态位2
#define GPIOSR_IO3 3//I/O引脚状态位3
#define GPIOSR_IO4 4//I/O引脚状态位4
#define GPIOSR_IO5 5//I/O引脚状态位5
#define GPIOSR_IO6 6//I/O引脚状态位6
#define GPIOSR_IO7 7//I/O引脚状态位7
/*---------------------------------------
HPIC位定义
----------------------------------------*/
#define HPIC_DSPINT 1//主机处理器到C5402的中断(R-0)
#define HPIC_HINT 2//C5402到主机处理器的中断引脚状态(R/W-1)
#define HPIC_HRDY 3//HRDY引脚状态(R)
#define HPIC_FETCH 4//主机取数据请求(R-0)
#define HPIC_XHPIA 5//扩展地址使能(R)
/*---------------------------------------
CLKMD位定义
----------------------------------------*/
#define CLKMD_PLLSTATUS 0//PLL状态位
#define CLKMD_PLLNDIV 1//PLL时钟发生器选择
#define CLKMD_PLLONOFF 2//PLL开关位
#define CLKMD_PLLCOUNT 3//PLL计数值3~10
#define CLKMD_PLLDIV 11//PLL乘法系数(除法器)
#define CLKMD_PLLMUL 12//PLL乘法系数(乘法器)12~15
/*---------------------------------------
PMST位定义
----------------------------------------*/
#define PMST_SST 0//存储饱和位
#define PMST_SMUL 1//乘法饱和位
#define PMST_CLKOFF 2//CLKOUT禁止位
#define PMST_DROM 3//数据ROM位
#define PMST_AVIS 4//地址可见性模式位
#define PMST_OVLY 5//RAM重叠位
#define PMST_MP_MC 6//微处理器/微计算机模式位
#define PMST_IPTR 7//中断向量指针7~15
/*---------------------------------------
TCR位定义
----------------------------------------*/
#define TCR_TDDR 0//定时器分频系数0~3
#define TCR_TSS 4//定时器停止状态
#define TCR_TRB 5//定时器重载
#define TCR_PSC 6//计数器预定标计数器6~9
#define TCR_FREE 10//
#define TCR_SOFT 11//
/*---------------------------------------
IFR位定义
----------------------------------------*/
#define IFR_INT0 0//外部中断0
#define IFR_INT1 1//外部中断1
#define IFR_INT2 2//外部中断2
#define IFR_TINT0 3//定时中断0
#define IFR_BRINT0 4//McBSP接收中断0
#define IFR_BXINT0 5//McBSP发送中断0
#define IFR_TINT1 7//定时中断1
#define IFR_INT3 8//外部中断3
#define IFR_HPINT 9//主机接口中断
#define IFR_BRINT1 10//McBSP接收中断1
#define IFR_BXINT1 11//McBSP发送中断1
#define IFR_DMAC0 6//DMA通道中断0
#define IFR_DMAC1 7//DMA通道中断1
#define IFR_DMAC2 10//DMA通道中断2
#define IFR_DMAC3 11//DMA通道中断3
#define IFR_DMAC4 12//DMA通道中断4
#define IFR_DMAC5 13//DMA通道中断5
/*---------------------------------------
IMR位定义
----------------------------------------*/
#define IMR_INT0 0//外部中断0
#define IMR_INT1 1//外部中断1
#define IMR_INT2 2//外部中断2
#define IMR_TINT0 3//定时中断0
#define IMR_BRINT0 4//McBSP接收中断0
#define IMR_BXINT0 5//McBSP发送中断0
#define IMR_TINT1 7//定时中断1
#define IMR_INT3 8//外部中断3
#define IMR_HPINT 9//主机接口中断
#define IMR_BRINT1 10//McBSP接收中断1
#define IMR_BXINT1 11//McBSP发送中断1
#define IMR_DMAC0 6//DMA通道中断0
#define IMR_DMAC1 7//DMA通道中断1
#define IMR_DMAC2 10//DMA通道中断2
#define IMR_DMAC3 11//DMA通道中断3
#define IMR_DMAC4 12//DMA通道中断4
#define IMR_DMAC5 13//DMA通道中断5
/*---------------------------------------
ST0位定义
----------------------------------------*/
#define ST0_DP 0//数据存储器页面指针0~8,共9位
#define ST0_OVB 9//累加器B溢出标志位
#define ST0_OVA 10//累加器A溢出标志位
#define ST0_C 11//进位或不借位标志
#define ST0_TC 12//测试/控制标志位
#define ST0_ARP 13//辅助寄存器(AR)指针13~15,共3位
/*---------------------------------------
ST1位定义
----------------------------------------*/
#define ST1_ASM 0//累加器模式位0~4
#define ST1_CMPT 5//修改模式位
#define ST1_FRCT 6//小数方式位
#define ST1_C16 7//双16位/双精度算术模式位
#define ST1_SXM 8//符号扩展模式位
#define ST1_OVM 9//溢出模式位
#define ST1_INTM 11//中断模式位
#define ST1_HM 12//保持模式位
#define ST1_XF 13//XF引脚状态位
#define ST1_CPL 14//相对直接寻址译码器模式位
#define ST1_BRAF 15//块重复操作标志位
/*---------------------------------------
BSCR位定义
----------------------------------------*/
#define BSCR_EXIO 0//外部总线接口关断位
#define BSCR_BH 1//总线保持位BH
#define BSCR_HBH 2//主机接口总线保持位
#define BSCR_IPIRQ 8//CPU处理器之间的中断请求位
#define BSCR_PSDS 11//程序空间读/数据空间读访问
#define BSCR_BNKCMP 12//分区比较位12~15
/*---------------------------------------
DMPREC位定义
----------------------------------------*/
#define DMPREC_DE 0//DMA通道使能0~5
#define DMPREC_DE0 0//DMA0通道使能
#define DMPREC_DE1 1//DMA1通道使能
#define DMPREC_DE2 2//DMA2通道使能
#define DMPREC_DE3 3//DMA3通道使能
#define DMPREC_DE4 4//DMA4通道使能
#define DMPREC_DE5 5//DMA5通道使能
#define DMPREC_INTOSEL 6//中断多路控制位6~7
#define DMPREC_DPRC 8//DMA通道优先级控制位0~5
#define DMPREC_DPRC0 8//DMA0通道优先级控制
#define DMPREC_DPRC1 9//DMA1通道优先级控制
#define DMPREC_DPRC2 10//DMA2通道优先级控制
#define DMPREC_DPRC3 11//DMA3通道优先级控制
#define DMPREC_DPRC4 12//DMA4通道优先级控制
#define DMPREC_DPRC5 13//DMA5通道优先级控制
#define DMPREC_FREE 15//
/*---------------------------------------
SPC位定义
----------------------------------------*/
#define SPC_DLB 1//数据回送模式位
#define SPC_FO 2//数据格式位
#define SPC_FSM 3//帧同步模式位
#define SPC_MCM 4//时钟模式位
#define SPC_TXM 5//发送模式位
#define SPC_XRST 6//发送器复位
#define SPC_RRST 7//接收器复位
#define SPC_IN0 8//输入0
#define SPC_IN1 9//输入1
#define SPC_RRDY 10//接收准备位
#define SPC_XRDY 11//发送准备位
#define SPC_XSREMPTY 12//发送移位寄存器空
#define SPC_RSRFULL 13//接收移位寄存器满
#define SPC_FREE 14//
#define SPC_SOFT 15//
/*---------------------------------------
BSPCE位定义
----------------------------------------*/
#define BSPCE_CLKDV 0//内部发送时钟分频系数0~4
#define BSPCE_FSP 5//帧同步信号极性设置
#define BSPCE_CLKP 6//时钟极性设置
#define BSPCE_FE 7//格式扩展
#define BSPCE_FIG 8//帧同步信号忽略
#define BSPCE_PCM 9//脉冲编码模式
#define BSPCE_ABU 10//自动缓冲单元控制10~15
#define BSPCE_BXE 10//自动缓冲发送使能
#define BSPCE_XH 11//发送缓冲半满
#define BSPCE_HALTX 12//自动缓冲发送停止位
#define BSPCE_BRE 13//自动缓冲接收使能
#define BSPCE_RH 14//接收缓冲半满
#define BSPCE_HALTR 15//自动缓冲接收停止位
/*---------------------------------------
SPCR1位定义
----------------------------------------*/
#define SPCR1_RRST 0//接收器复位
#define SPCR1_RRDY 1//接收准备好
#define SPCR1_RFULL 2//接收移位寄存器满
#define SPCR1_RSYNCERR 3//接收同步错
#define SPCR1_RINTM 4//接收中断模式4~5
#define SPCR1_ABIS 6//ABIS模式
#define SPCR1_DXENA 7//DX使能
#define SPCR1_CLKSTP 11//时钟停止模式11~12
#define SPCR1_RJUST 13//接收符号扩展及判别模式13~14
#define SPCR1_DLB 15//数字循环返回
/*---------------------------------------
SPCR2位定义
----------------------------------------*/
#define SPCR2_XRST 0//发送器复位
#define SPCR2_XRDY 1//发送准备好
#define SPCR2_XEMPTY 2//发送移位寄存器空
#define SPCR2_XSYNCERR 3//发生同步错误
#define SPCR2_XINTM 4//发送中断模式4~5
#define SPCR2_GRST 6//采样率发生器复位
#define SPCR2_FRST 7//帧同步发生器复位
#define SPCR2_SOFT 8//软件模式
#define SPCR2_FREE 9//自由运行模式
/*---------------------------------------
PCR位定义
----------------------------------------*/
#define PCR_CLKRP 0//接收时钟极性
#define PCR_CLKXP 1//发送时钟极性
#define PCR_FSRP 2//接收帧同步脉冲极性
#define PCR_FSXP 3//发送帧同步脉冲极性
#define PCR_DR_STAT 4//DR引脚状态位
#define PCR_DX_STAT 5//DX引脚状态位
#define PCR_CLKS_STAT 6//CLKS引脚状态位
#define PCR_CLKRM 8//接收器时钟模式位
#define PCR_CLKXM 9//发送器时钟模式位
#define PCR_FSRM 10//接收帧同步模式位
#define PCR_FSXM 11//发送帧同步模式位
#define PCR_RIOEN 12//接收通用I/O模式位
#define PCR_XIOEN 13//发送通用I/O模式位
/*---------------------------------------
RCR1位定义
----------------------------------------*/
#define RCR1_RWDLEN1 5//5~7
#define RCR1_RFRLEN1 8//8~14
/*---------------------------------------
RCR2位定义
----------------------------------------*/
#define RCR2_RDATDLY 0//0~1
#define RCR2_RFIG 2//
#define RCR2_RCOMPAND 3//3~4
#define RCR2_RWDLEN2 5//5~6
#define RCR2_RFRLEN2 8//8~14
#define RCR2_RPHASE 15//接收相位
/*---------------------------------------
XCR1位定义(*本次修改*)
----------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -