CCS5 DSP2812工程文件构建

更新时间:2024-02-02 00:28:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

总的说一个完整的工程需要由库文件(.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

建立工程

其他的选择默认即可,点Finish 即可完成

若没有Project Explorter 可以在View点即查看, 现在点击Project ->Build Project 进行工程编译

在Console中可以看到xx.out文件即编译成功,可以下载程序并调试烧写等工作 (若没有Console 可以在View点击打开)

若编译时出现问题可在Problems查看

2、工程文件已经完成一半,下面进行复制文件(请参考前四步)

DSP281x_headers DSP281x_common 可在TI官网下载,也可以用我的,都是一样的

回到CCSv5 点击工程文件右键,Refresh 重新载入文件(这效果比CCS3.3好) 3、以下取消没有用的文件

没有作用的文件如下(灰色的):

接着删除建立工程时自动生成的文件 2812_RAM_lnk.cmd 或者采用上面文件即消

建立USER文件夹,便于文件管理,如下

注意F2812.cmd 为FLASH启动的CMD文件,我将其剪切到USER文件 并在main函数中添加代码FLASH启动代码 #if 1

// Copy InitFlash function code and Flash setup code to RAM

MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); // This function must reside in RAM InitFlash(); #endif

2812_RAM_lnk.cmd 为RAM启动的CMD文件,若使用RAM模式,请取消FLASH启动代码,即可 4、添加头文件路径

添加如下:

有人说没有必要添加那么多文件夹,答案是的,确实没有必要添加那么多,但是多了也没有影响,何必在这些方面讨论

添加好后重译rebuild一下文件,(当遇到不太明白的错误时,建议先clear 再rebuild工程) 5、以下为修改文件如下

执行build project时,运行的时候出现“warning: creating .stack section with default size of 400 (hex) words.”的警告信息,解决方法在 在CMD文件添加以下代码 -stack 0x400

或者参考“编译问题收集” 6、再添加 cpu_def.h

其定义一些自已试用的数据类型 如以下: typedef CPU_INT08U uint8; //[0 255]

typedef CPU_INT16U uint16; //[0 65 535]//typedef unsigned int uint16; typedef CPU_INT32U uint32; //[0 4 294 967 295]//typedef unsigned long uint32; typedef CPU_INT08S sint8;

typedef CPU_INT16S sint16;//typedef signed int sint16; typedef CPU_INT32S sint32; //typedef signed long sint32; typedef sint8 int8;

可参考DSP281x_Device.h 自行编写 #ifndef DSP28_DATA_TYPES #define DSP28_DATA_TYPES typedef int int16; typedef long int32; typedef long long int64; typedef unsigned int Uint16; typedef unsigned long Uint32; typedef unsigned long long Uint64;

typedef float float32; typedef long double float64; #endif

再在includes.h添加其头文件,添加方法请看步骤4、5

7、备份点击工程文件右键,“clear project” 然后在到文件夹存放的地方压缩即可 然后点击工程文件右键“Delete”(方便以后添加)

(8)添加TargetConfigurationFile 就是仿真器的连接文件,我以XDS100V1为例,其他的仿真器也是大同小异的

建立好之后,一定要点击rebuild 工程

意义一个工程只能有一个TargetConfigurationFile 可以在view->TargetConfiguration 打开管理,对多余的进行管理

点击绿色小虫即进入调试模式

其他的观察变量、设置断点 Graph.....在以后课程进行介绍

(9)以上方面已经建立自己的工程模板,以下就介绍如何调用工程模板,方法如下 解压缩我们(7)步骤中的压缩文件,按以下操作

选择压缩后的文件夹

点击Finish即可导入应用

点击Rename 文便自己以后管理,以下以LED为例

“rebuild”一下,即可建立自己新的工程文件

其他项目也以此方法

题外话,有人说DSP281x_common 、DSP281x_headers 很多工程都用到,没有必要每个工程有份,但这样做法一个好处时方便与人交流,程个工程文件是独立的。在

可以看出,不会受外部的文件的影响。导入其他人做的工程时,编译不通过一般情况下都是

#include search path 设置不正常造成的,修改一下即可。 (5)编译问题收集

(1)执行build project时,运行的时候出现“warning: creating .stack section with default size of 400 (hex) words.”的警告信息,不知,以为是CMD文件出现问题,看了半天都找到原因,

提示说可以用stack options修改,却没在help里迅速找到解决办法。网上搜了一下,结合CCS4.0版本解答如下:

依然在 右键工程--build propertie--C2000 linker--basic options

即stack,head sizez处都填入0x400即可,此处估计得根据具体的芯片类型来填,有多种选择,但不能超过最大的范围。 或者在CMD文件添加以下代码 -stack 0x400

(2)warning #10247-D: creating output section \#10247-D: creating output section \解决方法

DSP281x_CSMPasswords.asm 程序加密代码的出错,这个只能在FLASH模式下才能工作,取消其的编译即可

参考资料:

DSP281x_HeaderFiles_QuickStart_Readme.pdf DSP281x_HeaderFiles_QuickStart中文版.doc IQmath_v15a.pdf

Programming TMS320x28xx and 28xxx Peripherals in C C++.pdf

原文地址: 【DSP2812学习心得】一、构建完整工程文件》http://blog.sina.com.cn/s/blog_7e7fa4c80101fkyb.html

程序下载地址一:

http://www.pudn.com/downloads567/sourcecode/embedded/detail2333593.html 程序下载地址二:http://download.csdn.net/detail/dvd1478/5973301

本文来源:https://www.bwwdw.com/article/6xfw.html

Top