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

📄 tms320lf2407program.txt

📁 TMS320LF2407完整C语言测试程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
/*邮包 1 A*/
volatile unsigned int  * CANMBX1B = (volatile unsigned int *) 0x720D; 
/* 邮包 1 B*/
volatile unsigned int  * CANMBX1C = (volatile unsigned int *) 0x720E; 
/* 邮包 1 C*/
volatile unsigned int  * CANMBX1D = (volatile unsigned int *) 0x720F; 
/* 邮包 1 D*/
volatile unsigned int  * CANMSGID2L = (volatile unsigned int *) 0x7210; 
/* 对于邮包2的信息标志符 低位 */ 
volatile unsigned int  * CANMSGID2H = (volatile unsigned int *) 0x7211; 
/* 对于邮包2的信息标志符 高位 */
volatile unsigned int  * CANMSGCTRL2 = (volatile unsigned int *) 0x7212; 
/*对于邮包2的信息控制域*/
volatile unsigned int  * CANMBX2A  = (volatile unsigned int *) 0x7214;
/* 邮包 2 A*/
volatile unsigned int  * CANMBX2B    = (volatile unsigned int *) 0x7215;
/*邮包2 B*/
volatile unsigned int  * CANMBX2C    = (volatile unsigned int *) 0x7216;
/*邮包2 C*/
volatile unsigned int  * CANMBX2D    = (volatile unsigned int *) 0x7217;
/*邮包2 D*/
volatile unsigned int  * CANMSGID3L  = (volatile unsigned int *) 0x7218; 
/* 对于邮包3的信息标志符 低位 */ 
volatile unsigned int  * CANMSGID3H  = (volatile unsigned int *) 0x7219; 
/* 对于邮包3的信息标志符 高位 */
volatile unsigned int  * CANMSGCTRL3 = (volatile unsigned int *) 0x721A; 
/*对于邮包3的信息控制域*/
volatile unsigned int  * CANMBX3A  = (volatile unsigned int *) 0x721C;
/* 邮包 3 A*/
volatile unsigned int  * CANMBX3B  = (volatile unsigned int *) 0x721D;
/* 邮包 3 B*/
volatile unsigned int  * CANMBX3C  = (volatile unsigned int *) 0x721E;
/* 邮包 3 C*/
volatile unsigned int  * CANMBX3D  =(volatile unsigned int *) 0x721F; 
/* 邮包 3 D*/
volatile unsigned int  * CANMSGID4L = (volatile unsigned int *) 0x7220; 
/* 对于邮包4的信息标志符 低位 */ 
volatile unsigned int  * CANMSGID4H = (volatile unsigned int *) 0x7221; 
/* 对于邮包4的信息标志符 高位 */
volatile unsigned int  * CANMSGCTRL4= (volatile unsigned int *) 0x7222; 
/*对于邮包4的信息控制域*/
volatile unsigned int  * CANMBX4A = (volatile unsigned int *) 0x7224; 
/* 邮包 4 A*/
volatile unsigned int  * CANMBX4B = (volatile unsigned int *) 0x7225; 
/* 邮包 4 B*/
volatile unsigned int  * CANMBX4C = (volatile unsigned int *) 0x7226; 
/* 邮包 4 C*/
volatile unsigned int  * CANMBX4D = (volatile unsigned int *) 0x7227; 
/* 邮包 4 D*/
volatile unsigned int * CANMSGID5L  = (volatile unsigned int *) 0x7228; 
/* 对于邮包5的信息标志符 低位 */
volatile unsigned int * CANMSGID5H  = (volatile unsigned int *) 0x7229; 
/* 对于邮包5的信息标志符 高位 */
volatile unsigned int * CANMSGCTRL5 = (volatile unsigned int *) 0x722A; 
/*对于邮包5的信息控制域*/
volatile unsigned int  * CANMBX5A = (volatile unsigned int *) 0x722C; 
/* 邮包 5 A*/
volatile unsigned int  * CANMBX5B = (volatile unsigned int *) 0x722D; 
/* 邮包 5 B*/
volatile unsigned int  * CANMBX5C = (volatile unsigned int *) 0x722E; 
/* 邮包 5 C*/
volatile unsigned int  * CANMBX5D = (volatile unsigned int *) 0x722F;
/*邮包5 D*/
/*事件管理器 (EV)/ 事件管理器 A (EVA) 寄存器
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
volatile unsigned int  * GPTCONA    = (volatile unsigned int *) 0x7400; 
/* 通用定时器控制寄存器*/
volatile unsigned int  * T1CNT  = (volatile unsigned int *) 0x7401; 
/* T1 计数器*/
volatile unsigned int  * T1CMP  = (volatile unsigned int *) 0x7402; 
/* T1 比较值寄存器*/
volatile unsigned int  * T1PER  = (volatile unsigned int *) 0x7403; 
/* T1 周期寄存器*/
volatile unsigned int  * T1CON  = (volatile unsigned int *) 0x7404; 
/* T1 控制寄存器*/
volatile unsigned int  * T2CNT  = (volatile unsigned int *) 0x7405; 
/* T2 计数器*/
volatile unsigned int  * T2CMP  = (volatile unsigned int *) 0x7406; 
/* T2 比较值寄存器*/
volatile unsigned int  * T2PER  = (volatile unsigned int *) 0x7407; 
/* T2 周期寄存器*/
volatile unsigned int  * T2CON  = (volatile unsigned int *) 0x7408; 
/* T2 控制寄存器*/
volatile unsigned int  * COMCONA  = (volatile unsigned int *) 0x7411; 
/* 比较控制寄存器*/
volatile unsigned int  * ACTRA  = (volatile unsigned int *) 0x7413; 
/* 比较输出动作控制寄存器*/
volatile unsigned int  * DBTCONA  = (volatile unsigned int *) 0x7415; 
/* 死区控制寄存器*/
volatile unsigned int * CMPR1  = (volatile unsigned int *) 0x7417; 
/* 比较值1*/
volatile unsigned int * CMPR2  = (volatile unsigned int *) 0x7418; 
/* 比较值2*/
volatile unsigned int * CMPR3  = (volatile unsigned int *) 0x7419; 
/* 比较值3*/
volatile unsigned int * CAPCONA  = (volatile unsigned int *) 0x7420; 
/* 捕捉控制寄存器*/
volatile unsigned int * CAPFIFOA = (volatile unsigned int *) 0x7422; 
/* 捕捉 FIFO A 状态寄存器*/
volatile unsigned int * CAP1FIFO = (volatile unsigned int *) 0x7423; 
/* 捕捉1 FIFO 顶部*/
volatile unsigned int * CAP2FIFO = (volatile unsigned int *) 0x7424; 
/* 捕捉 2 FIFO 顶部*/
volatile unsigned int * CAP3FIFO = (volatile unsigned int *) 0x7425; 
/* 捕捉 3 FIFO 顶部*/
volatile unsigned int * CAP1FBOT = (volatile unsigned int *) 0x7427; 
/* 捕捉 1 FIFO 底部 */
volatile unsigned int * CAP2FBOT = (volatile unsigned int *) 0x7428; 
/* 捕捉 2 FIFO 底部 */
volatile unsigned int * CAP3FBOT    = (volatile unsigned int *) 0x7429;  
/* 捕捉 2 FIFO 底部 */
volatile unsigned int * EVAIMRA = (volatile unsigned int *) 0x742C; 
/* EVA 中断屏蔽寄存器 A*/
volatile unsigned int * EVAIMRB = (volatile unsigned int *) 0x742D; 
/* EVA中断屏蔽寄存器 B*/
volatile unsigned int * EVAIMRC = (volatile unsigned int *) 0x742E; 
/* EVA 中断屏蔽寄存器 C*/
volatile unsigned int  * EVAIFRA = (volatile unsigned int *) 0x742F; 
/* EVA中断标志寄存器 A*/
volatile unsigned int  * EVAIFRB = (volatile unsigned int *) 0x7430; 
/* EVA 中断标志寄存器 B*/
volatile unsigned int  * EVAIFRC = (volatile unsigned int *) 0x7431; 
/* EVA中断标志寄存器 C*/
/*事件管理器 B (EVB) 寄存器
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
volatile unsigned int  * GPTCONB  = (volatile unsigned int *) 0x7500; 
/*通用定时器控制寄存器*/
volatile unsigned int  * T3CNT  = (volatile unsigned int *) 0x7501; 
/* T3计数器*/
volatile unsigned int  * T3CMP  = (volatile unsigned int *) 0x7502; 
/* T3比较值寄存器*/
volatile unsigned int  * T3PER  = (volatile unsigned int *) 0x7503; 
/* T3周期寄存器*/
volatile unsigned int   * T3CON  = (volatile unsigned int *) 0x7504; 
/* T3控制寄存器*/
volatile unsigned int   * T4CNT  = (volatile unsigned int *) 0x7505; 
/* T4计数器*/
volatile unsigned int   * T4CMP  = (volatile unsigned int *) 0x7506; 
/* T4比较值寄存器*/
volatile unsigned int    * T4PER  = (volatile unsigned int *) 0x7507; 
/* T4周期寄存器*/
volatile unsigned int    * T4CON  = (volatile unsigned int *) 0x7508; 
/* T4控制寄存器*/
volatile unsigned int    * COMCONB  = (volatile unsigned int *) 0x7511;
/*比较控制寄存器*/
volatile unsigned int    * ACTRB  = (volatile unsigned int *) 0x7513; 
/*比较输出动作控制寄存器*/
volatile unsigned int    * DBTCONB  = (volatile unsigned int *) 0x7515; 
/*死区控制寄存器*/
volatile unsigned int    * CMPR4  = (volatile unsigned int *) 0x7517; 
/*比较值4*/
volatile unsigned int    * CMPR5  = (volatile unsigned int *) 0x7518; 
/*比较值5*/
volatile unsigned int    * CMPR6  = (volatile unsigned int *) 0x7519; 
/*比较值6*/
volatile unsigned int    * CAPCONB  = (volatile unsigned int *) 0x7520; 
/*捕捉控制寄存器*/
volatile unsigned int    * CAPFIFOB = (volatile unsigned int *) 0x7522; 
/* 捕捉FIFO A 状态寄存器*/
volatile unsigned int    * CAP4FIFO = (volatile unsigned int *) 0x7523; 
/* 捕捉 4 FIFO 顶部*/
volatile unsigned int    * CAP5FIFO = (volatile unsigned int *) 0x7524; 
/* 捕捉 5 FIFO 顶部*/
volatile unsigned int   * CAP6FIFO = (volatile unsigned int *) 0x7525; 
/* 捕捉 6 FIFO 顶部*/
volatile unsigned int   * CAP4FBOT = (volatile unsigned int *) 0x7527;
/* 捕捉 4 FIFO 底部*/ 
volatile unsigned int   * CAP5FBOT = (volatile unsigned int *) 0x7528; 
/*捕捉 5 FIFO 底部*/ 
volatile unsigned int   * CAP6FBOT  = (volatile unsigned int *) 0x7529; 
/*捕捉 6 FIFO底部*/ 
volatile unsigned int   * EVBIMRA = (volatile unsigned int *) 0x752C; 
/* EVB中断屏蔽寄存器A*/
volatile unsigned int   * EVBIMRB = (volatile unsigned int *) 0x752D; 
/* EVB 中断屏蔽寄存器B*/
volatile unsigned int   * EVBIMRC = (volatile unsigned int *) 0x752E; 
/* EVB 中断屏蔽寄存器 C*/
volatile unsigned int   * EVBIFRA = (volatile unsigned int *) 0x752F; 
/* EVB 中断标志寄存器 A*/
volatile unsigned int   * EVBIFRB = (volatile unsigned int *) 0x7530; 
/* EVB 中断标志寄存器 B*/
volatile unsigned int   * EVBIFRC = (volatile unsigned int *) 0x7531; 
/* EVB 中断标志寄存器 C*/
/*-----------------------------------------------------------------------------
;常量的定义
;-----------------------------------------------------------------------------
;数据空间
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define  B2_SADDR 0x0060 /*块 B2 的开始地址*/
#define  B2_EADDR 0x007F /*块 B2 的结束地址*/
#define  B0_SADDR 0x0200 /*块 B0 的开始地址*/
#define  B0_EADDR 0x02FF /*块 B0 的结束地址*/
#define  B1_SADDR 0x0300 /*块 B1 的开始地址*/
#define  B1_EADDR 0x03FF /*块 B1 的结束地址*/
#define  SARAM  0x0800 /*SARAM 的开始地址(0800h-0FFFh)*/
#define  EXTDATA  0x8000 /*外部的数据空间的开始地址*/
/*经常用到的数据页
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define  DP_B2  0 /*页 0  数据空间*/
#define  DP_B01  4 /*页 4  B0(200H/80H)*/ 
#define  DP_B02  5 /*页 5  B0(280H/80H)*/ 
#define  DP_B11  6 /*页 6  B1(300H/80H)*/ 
#define  DP_B12  7 /*页 7  B1(380H/80H)*/
#define  DP_SARAM1    16 /*页 16 SARAM(800H/80H)*/
#define  DP_PF1      224      /*页1 外设帧文件 (7000h/80h)(0XE0)*/
#define  DP_PF2      225     /*页 2 外设帧文件 (7080h/80h)(0XE1)*/
#define  DP_PF3      226     /*页 3 外设帧文件 (7100h/80h)(0XE2)*/
#define  DP_PF4      227     /*页 4外设帧文件(7180h/80h)(0XE3)*/
#define  DP_PF5      228     /*页 5外设帧文件(7200h/80h)(0XE4)*/
#define  DP_EVA      232 /*EVA 寄存器文件 (7400h/80h)(0XE8)*/
#define  DP_EVB      234 /*EVB 寄存器文件 (7500h/80h)(0XEA)*/
#define  DP_EXT1      256      /*外部存储器的第一块(8000H/80H)*/
/*位测试指令的位代码(BIT)
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define  BIT15  0 /*位代码 15*/
#define  BIT14  1 /*位代码14*/
#define  BIT13  2 /*位代码13*/
#define  BIT12  3 /*位代码12*/
#define  BIT11  4 /*位代码11*/
#define  BIT10  5 /*位代码10*/
#define  BIT9  6 /*位代码9*/
#define  BIT8  7 /*位代码8*/
#define  BIT7  8 /*位代码7*/
#define  BIT6  9 /*位代码6*/
#define  BIT5  10 /*位代码5*/
#define  BIT4  11 /*位代码4*/
#define  BIT3  12 /*位代码3*/
#define  BIT2  13 /*位代码2*/
#define  BIT1  14 /*位代码1*/
#define  BIT0  15 /*位代码0*/
/*用SBIT0和SBIT1宏屏蔽位
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define  B15_MSK  0x8000 /*位屏蔽15*/
#define  B14_MSK  0x4000 /*位屏蔽14*/
#define  B13_MSK  0x2000 /*位屏蔽13*/
#define  B12_MSK  0x1000 /*位屏蔽12*/
#define  B11_MSK  0x0800 /*位屏蔽11*/
#define  B10_MSK  0x0400 /*位屏蔽10*/
#define  B9_MSK  0x0200 /*位屏蔽9*/
#define  B8_MSK  0x0100 /*位屏蔽8*/
#define  B7_MSK  0x0080 /*位屏蔽7*/
#define  B6_MSK  0x0040 /*位屏蔽6*/
#define  B5_MSK  0x0020 /*位屏蔽5*/
#define  B4_MSK  0x0010 /*位屏蔽4*/
#define  B3_MSK  0x0008 /*位屏蔽3*/
#define  B2_MSK  0x0004 /*位屏蔽2*/
#define  B1_MSK  0x0002 /*位屏蔽1*/
#define  B0_MSK  0x0001 /*位屏蔽0*/
/*看门狗定时器复位字符串 
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#define  wd_rst_1 0x0055
#define  wd_rst_2 0x00AA
/*以下为用户自行定义的变量
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

 

3 CMD文件,存储分配

/*************************************************************************
NOTE:TMS320LF2407 without external ram and rom
*************************************************************************/
MEMORY
{
       PAGE 0: VECS: origin = 0x008000,  length 0x0040 
       PAGE 0: PROG: origin = 0x008080,  length 0x780
       PAGE 1: B2  : origin = 0x000060,  length 0x20
       PAGE 1: B0  : origin = 0x000200,  length 0x100
       PAGE 1: B1  : origin = 0x000300,  length 0x100
       PAGE 1: DATA: origin = 0x000800,  length 0x0700
}

SECTIONS
{
       .vectors  : {}  >VECS PAGE 0   /* 中断向量表 */
       .text     : {}  >PROG PAGE 0         /* 可执行代码和字符串 */
       .cinit    : {}  >PROG PAGE 0         /* 初始化变量和常数表 */
       .bss      : {}  >DATA PAGE 1   /* 保留全局变量和静态变量空间 */
       .const    : {}  >DATA PAGE 1   /* 字符串和switch表 */    
  /*.switch   : {}  >DATA PAGE 1         /* 包含.switch语句建立的表格 */
       .stack  : {}  >DATA PAGE 1         /* 为系统堆栈分配存储器 */
       .system   : {}  >DATA PAGE 1   /*为动态存储器函数分配存储器空间 */
       
}

 


4  vectors.asm 中断向量文件
/********************************************
File:vectors.asm
Description:vectors.asm 中断向量文件
Author: kassey@126.com NOV,22th,2005
********************************************/

     .ref _c_int0;
     .ref    _nothing; 
                 
        .sect ".vectors" 
  
reset:       B  _c_int0    ;
int0:         B  _nothing            ;
int2:         B  _nothing            ;
int3:         B  _nothing            ;
int4:         B  _nothing         ;
int5:         B  _nothing         ;
int6:         B  _nothing

⌨️ 快捷键说明

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