TMS320F28035第一节,开发环境与新建工程
第一节,开发环境与新建工程文章目录
一、DSP TMS320F28035介绍
TMS320F28035是TI C2000系列DSP之一,它具有很高的性价比和出色的DSP控制性能。单电源供电,主频适中(60MHZ),附带一个CLA浮点运算核。同样具有增强型eCAN、SPI,SCI等通信接口,增强型eQEP正交编码接口、增强型ePWM接口,eCAP接口等。TMS320F28035封装有三种,分别是QFN56/QFP64/QFP80,芯片内存空间flash有128k、RAM空间10k,大家常见的开发板为80引脚封装的开发板。
国产器件对应DSP厂家的有湖南进芯电子、中科昊芯、毂梁微等。
二、开发工具
1.软件工具
软件开发工具一般使用TI官网的CCS软件,我当前使用的是CCS10.30版本,去官网或者一些软件下载网站基本都可以正常获取,其他的还包括C2000Ware、conrtolSUITE、C2Prog、uniflash,我一般常用的是C2Prog烧录工具,版本1.7版本,在生产过程中量产烧录固件使用。
2.硬件工具
硬件工具我用的是XDS100V3,有很多第三方烧录工具选择,没有必要花大价钱使用XDS510。
三、环境配置
1.CCS安装
网上有很多中安装教程这里就不详细阐述了,需要说明的一点是,在安装时若进行选配安装时不知如何选择,就直接全部选取安装即可,安装路径建议不要放在C盘下。
2.工程创建
1、获取一份例程,并将其中的工程依赖的.c、.h、.cmd配置文件拷贝下来。
2、新建文件夹DSP28035Project,并在文件夹中创建4个子文件夹APP、cmd、include、source,将第一步获取到的.c、.h、.cmd分别拷贝到对应文件夹中,各文件夹下文件实例如下:
为了后期使用CLA运算库我将对应的数学库一并复制到工程中,后边我们自己开发的应用文件都放在APP文件夹中即可
其中也包含了CLA的cmd配置文件
将.h文件放置在inlcude中
将依赖的.c文件放在source中
至此,工程所需的文件就齐全了。
3.CCS创建项目
1、打开CCS10,双击打开,并选择一个工作空间
2、新建工程,创建一个新的空工程,芯片选择等配置如图所示,将工程取名为DSP28035demo,根据各自习惯取名。
3、创建成功后删除28035_RAM_lnk.c和main,将之前创建的4个子文件夹复制到建立的项目路径下
4、在CCS窗口下可以看到4个文件夹,其中主程序main和includes是我们自己创建的,将以下代码复制到inlucdes.h中
inlucdes.h
#ifndef APP_INCLUDES_H_
#define APP_INCLUDES_H_
#include "DSP28x_Project.h"
#include "DSP2803x_DefaultISR.h"
#include "DSP2803x_Cla_defines.h"
#include "DSP2803x_Adc.h"
#include "CLAmath.h"
//------------------------------------------
void MemCopy(Uint16 *SourceAddr, Uint16* SourceEndAddr, Uint16* DestAddr);
#endif
main.c中
#include "includes.h"
/********************************************************
函数名称:main
函数功能:主程序
入口参数:
出口参数:
修 改:
********************************************************/
void main(void)
{
//
while(1)
{
;
}
}
5、工程配置
按照图示进行工程配置
点击apply and close
以下两个图 将工程中相关文件exclude from build
到此为止,工程建立成功,rebuile project,编译通过。
四、点亮一个灯
1、将指示灯引脚在includes.h进行宏定义
代码如下(示例):
//D400 低电平亮;(也是PWM7B的引脚)
#define D400GPIO GPIO41
#define D400MUX GpioCtrlRegs.GPBMUX1.bit.D400GPIO
#define D400DIR GpioCtrlRegs.GPBDIR.bit.D400GPIO
#define D400TOGGLE() GpioDataRegs.GPBTOGGLE.bit.D400GPIO = 1
#define D400ON() GpioDataRegs.GPBCLEAR.bit.D400GPIO =1
#define D400LOW() GpioDataRegs.GPBSET.bit.D400GPIO =1
//D401 低电平亮;
#define D401GPIO GPIO34
#define D401MUX GpioCtrlRegs.GPBMUX1.bit.D401GPIO
#define D401DIR GpioCtrlRegs.GPBDIR.bit.D401GPIO
#define D401TOGGLE() GpioDataRegs.GPBTOGGLE.bit.D401GPIO = 1
#define D401ON() GpioDataRegs.GPBCLEAR.bit.D401GPIO =1
#define D401LOW() GpioDataRegs.GPBSET.bit.D401GPIO =1
//D402 低电平亮;
#define D402GPIO GPIO43
#define D402MUX GpioCtrlRegs.GPBMUX1.bit.D402GPIO
#define D402DIR GpioCtrlRegs.GPBDIR.bit.D402GPIO
#define D402TOGGLE() GpioDataRegs.GPBTOGGLE.bit.D402GPIO = 1
#define D402ON() GpioDataRegs.GPBCLEAR.bit.D402GPIO =1
#define D402LOW() GpioDataRegs.GPBSET.bit.D402GPIO =1
在主程序main中实现点亮指示灯和灯闪烁功能
代码如下(示例):
#include "includes.h"
/********************************************************
函数名称:main
函数功能:主程序
入口参数:
出口参数:
修 改:
********************************************************/
static unsigned long delaycnt = 0;
void main(void)
{
InitSysCtrl();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
// Copy time critical code and Flash setup code to RAM
// The RamfuncsLoadStart, RamfuncsLoadSize, and RamfuncsRunStart
// symbols are created by the linker. Refer to the F28035v1.cmd file.
//实现在RAM中运行代码的搬运,例如使用官方的DELAY_US
MemCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd, &RamfuncsRunStart);
//memcpy(&Cla1funcsRunStart, &Cla1funcsLoadStart, (Uint32)&RamfuncsLoadSize);
InitFlash();
/*灯初始化*****************************************************/
EALLOW;
//3个普通LED
D400MUX = 0;//GPIO功能
D400DIR = 1;//输出
D401MUX = 0;
D401DIR = 1;
D402MUX = 0;
D402DIR = 1;
EDIS;
D400ON();
D401ON();
D402ON();
/************************************************************/
EALLOW; // This is needed to write to EALLOW protected registers
PieCtrlRegs.PIECTRL.bit.ENPIE = 1; // Enable the PIE block
EDIS; // This is needed to disable write to EALLOW protected registers
//================================================================================
EINT;
ERTM;
//
while(1)
{
//闪烁灯
/* D400ON();
D401ON();
D402ON();
for(delaycnt = 0;delaycnt<1000000;delaycnt++)
{
;
}
D400LOW();
D401LOW();
D402LOW();
for(delaycnt = 0;delaycnt<1000000;delaycnt++)
{
;
}
*/
//另外一种闪烁灯
D400TOGGLE();
D401TOGGLE();
D402TOGGLE();
for(delaycnt = 0;delaycnt<1000000;delaycnt++)
{
;
}
}
}
3、编译完成build project,连接XDS100V3调试器与目标板子,可在此处进行调试器连接验证,点击verify
4、关闭验证窗口,点击“七星瓢虫图标”(调试按钮)进行烧录,完成后关闭调试功能,,点击板子的RST按键或者重新上电,程序自动跑起来,可以观察到3个指示灯进行闪烁。
五、工程移植
1、新建文件夹workspace_v10_(切记不要使用中文路径),将刚完成的工程文件夹,或者附件的工程复制到workspace_v10_文件夹下
2、重新打开CCS10.3软件,选择刚创建的工作空间,点击launch。
选择导入工程project->Import CCS project,选择刚复制进来的文件夹,并点击finish
完成以上操作默认点击下图中的finish
3、rebuild工程,烧录测试,结果正常,至此工程建立与移植成功
总结
1、以上内容适合有一定CCS使用基础的同学,或者参照CCS使用文档进行操作;
2、工程中具备FLASH烧录配置,计算库,cla库等内容,后期制作时,围绕相关内容展开介绍