总的说一个完整的工程需要由库文件(.lib),头文件(.h),源文件(.c)和 CMD 文件(.CMD)组成,缺一不可。至于各文件内容将在以后中详细说明 (1)TI 库的移植 1、库文件(.lib)
rts2800_ml.lib --- 大存储器模式 IQmath.lib --- Q化数学函数库
2、TI库 源文件 头文件 DSP281x_common DSP281x_headers 注意
DSP281x_SWPrioritizedDefaultIsr.c DSP281x_SWPiroritizedPieVect.c DSP281x_XintfBootReset.asm 这三个文件有需要时才添加 3、CMD 文件
4、修改TI库两个头文件
a、DSP281x_headers\\include\\DSP281x_Device.h #define TARGET 1
//--------------------------------------------------------------------------- // User To Select Target Device:
#define DSP28_F2812 TARGET #define DSP28_F2811 0 #define DSP28_F2810 0
b、DSP281x_common\\include\\DSP281x_Examples.h
#define CPU_RATE 6.667L // for a 150MHz CPU clock speed (SYSCLKOUT) //#define CPU_RATE 7.143L // for a 140MHz CPU clock speed (SYSCLKOUT) 5、编写文件 包含头文件
#include \#include \(2)TI库文件解释 文件 描述
DSP281x_GlobalPrototypes.h 这个文件包含外设详细的函数原型 DSP281x_Adc.c ADC具体函数和宏 DSP281x_CpuTimers.c CPU-Timer具体函数和宏 DSP281x_Ecan.c 增强CAN详细函数和宏 DSP281x_Ev.c EV详细函数和宏 DSP281x_Gpio.c GPIO详细函数和宏 DSP281x_Mcbsp.c McBSP详细函数和宏 DSP281x_PieCtrl.c PIE控制详细函数和宏 DSP281x_Sci.c SCI详细函数和宏 DSP281x_Spi.c SPI详细函数和宏
DSP281x_SysCtrl.c
系统控制(看门够,时钟,pll等) 详细函数和宏 DSP281x_Xintf.c XINTF详细函数和宏 DSP281x_Xintrupt.c 外部中断详细函数和宏 DSP281x_CodeStartBranch.asm
当代码导入Flash,OTP或H0 SARAM存储器时,此程序确定代码从哪个分支开始执行。在使用包含的c 初始程序之前,需要关闭看门狗。
若程序从xintf zone 7引导执行,择使用DSP281x_XintfBootReset.asm替代。 DSP281x_XintfBootReset.asm
这个文件说明程序从xintf zone 7引导。 在使用包含的c 初始程序之前,需要关闭看门狗。如果代码导入Flash,OTP或H0 SARAM存储器时,使用DSP281x_CodeStartBranch.asm代替它。
DSP281x_DBGIER.asm
汇编函数控制来自C的DEBIER寄存器 DSP281x_usDelay.asm
在微秒内插入一个延时的汇编函数。这个函数是依赖时钟周期的,它必须从具有0 等待-状态的 RAM执行。
DSP281x_CSMPasswords.asm
包含在工程中,编译代码安全模式密码和保留位置。 DSP281x_SWPrioritizedDefaultlsr.c
默认的中断服务外壳程序。 你可以选择填充一个函数或将你的ISR重新映射到PIE向量表。注意:这个文件对DSP\\BIOS 工程没有用。 DSP281x_SWPrioritizedLevel.h
DSP281x_Defaultlsr.c中的ISR函数原型声明。注意: 这个文件对DSP\\BIOS 工程没有用。 DSP281x_SWPrioritizedPieVect.c
DSP281x_Defaultlsr.c中创建带指向ISR函数指针的PIE向量表初始化。为了初始化到默认的ISR位置,这个示例能够被拷贝到PIE向量表。 DSP281x_Defaultlsr.c
完整PIE向量表的中断服务外壳程序(ISRs)。可以选择填充一个函数或将你的ISR重新映射到PIE向量表。注意:这个文件对DSP\\BIOS 工程文件没有用。 DSP281x_Defaultlsr.h
DSP281x_Defaultlsr.c中的ISR函数原型声明。注意: 这个文件对DSP\\BIOS 工程文件没有用
DSP281x_PieVect.c
此处是DSP281x_Defaultlsr.c中ISR函数的一个实例,创建一个带指针的PIE向量表结构初始化。为了初始化到默认的ISR位置,可以拷贝这个实例到PIE向量表。 详情请看
DSP281x_HeaderFiles_QuickStart_Readme.pdf DSP281x_HeaderFiles_QuickStart中文版.doc (3)CMD文件
1、用于分配编译产生的各个段至存储器 ,用来分配存储空间的 DSP281x_headers\\cmd\\DSP281x_Headers_BIOS.cmd DSP281x_headers\\cmd\\DSP281x_Headers_nonBIOS.cmd 2、CMD 文件又分成两种。
一种是分配 RAM 空间的-- 微计算机模式(仿真模式) ,用来将程序 load 到 RAM 内进行调试,因为我们大部分时间都是在调试程序,所以多用这类 CMD,
另一种是分配 FLASH 空间-----微处理器模式,当程序调试完毕后,需要将其烧写到 FLASH 内部进行固化,这个时侯我们就需要使用这类 CMD 文件了 注:复位时,芯片采样XMP/MC引脚,以判断采用何种模式运行。
如果XMP/MC=1(微处理器模式),第7外部接口(XINTF zone 7)使能,复位向量从外部存储器中取得。此时,必须确保复位向量指向有效的代码执行地址。当然,这种模式只有在具有外部接口的器件上才可以采用,如2812。
如果XMP/MC=0(微计算机模式),第7外部接口(XINTF zone 7)不使能,使能内部boot ROM。此时,复位向量从内部boot ROM中取得。没有外部接口的芯片在内部将XMP/MC拉低,以保证总会使能内部boot ROM。(建议此时用0殴电阻) 详情请看
281x上电引导顺序.doc
TMS320x281x Boot ROM Reference Guide.pdf (4)实战建立自己的工程文档
1、这里只讨论CCSv5 建立的方法,其实是大同小异的,平时多点即可
选择自己的Workspace
建立工程