一、简介
众所周知,相较于TMS320F28335,TMS320C5509V属于较老的平台,在新版本的CCS版本上支持一直是一个问题。
最基本的问题便是,无法新建基础工程。各开发版厂商提供的例程无法在CCS8上使用,只支持CCS3.3环境,但是由于目前Win7、Win10等系统均不再支持CCS3.3,所以只能折腾虚拟机来实现TMS320C5509V的使用。
本文在此基础上,实现相关功能在CCS8上的移植,完成Win10对TMS320C5509V的支持,实现LED灯的控制。使用的仿真器是XDS100V3,实测XDS100V1是不支持的。
两块TMS320C5509V板子
- 永腾电子开发板
- 精能冠电子核心板
二、CSL库简介
5509和C2000系列相比,使用的CSL(Chip Support Library)库进行使用的,所以移植主要也是完成此库的移植,由于CCS8上不再自带此库,所以需要从CCS3.3上将其复制过来(CCS3.3会自动包含此库)。
由于以前并没有使用过CSL库,对库中的相关函数也并不清楚,下载了一个《TMS320C55x Chip Support Library API Reference Guide》,里面有相关介绍,但是很多东西没有实际操作例程,光看,非常空洞,也看不懂,就暂时跳过,先实现LED闪烁,后面再考虑是否深入了解吧。简单看了下,很难用,不如直接使用C2000系列。
三、移植
3.1 安装C5500编译器
由于安装CCS时没有C5500编译器可选,所以需要手动安装,在菜单栏Help选择CCS App Center。
由于我已经安装了编译器,如果没有安装C5500 Compiler会有Select可选框,选中后点击左上角的Install Software,等待完成安装即可。
3.2 新建工程
在菜单栏Project选择New CCS Project,弹出的窗口中,Target选择TMS320C5509A,仿真器选择XDS100V3,输入Project Name后点击Finish即可完成工程的新建。
这时候点击编译程序,是可以正常编译通过的。
编译结果:
简单写一个计数的程序,看看程序能不能下载并运行。
unsigned int num=0;
int main(void)
{
while(1)
{
num++;
}
return 0;
}
在num++所在行前双击,添加一个断点,点击烧录程序,并运行。
在Expressions中添加num变量用于监测,每次点击运行,在断点处停下,可以查看到num每次加1,说明程序下载正常。
目前这个工程,可以用来实现一些算法的仿真,但是没办法对外设进行控制。
3.3 添加CSL库
-
将csl库复制到工程目录,本例为D:\CCS Project\C5509\DSP(工作区间为D:\CCS Project\C5509)。
-
将csl/lib下除csl5509x.lib以外的文件Exclude(选中文件,右键Exclude from Build),也可以直接将其他文件删掉。
-
添加csl/include头文件路径,由于 P R O J E C T R O O T 代表的路径是工程目录,第一步是将 c s l 库复制到工程目录的,所以直接 c s l / i n c l u d e 路径为: {PROJECT_ROOT}代表的路径是工程目录,第一步是将csl库复制到工程目录的,所以直接csl/include路径为: PROJECTROOT代表的路径是工程目录,第一步是将csl库复制到工程目录的,所以直接csl/include路径为:{PROJECT_ROOT}/csl/include,将其添加到Include Options中。
-
添加Predefined Symbols。由于CSL需要指定芯片类型,否则编译会有相关报错。Predefined Symbols添加CHIP_5509。
-
添加main.c。参考开发板提供的GPIO例程,在main.c中添加如下代码:
#include <csl.h> #include <csl_pll.h> #include <csl_chip.h> #include <csl_gpio.h> void delay(); /*锁相环的设置*/ PLL_Config myConfig = { 0, //IAI: the PLL locks using the same process that was underway //before the idle mode was entered 1, //IOB: If the PLL indicates a break in the phase lock, //it switches to its bypass mode and restarts the PLL phase-locking //sequence 24, //PLL multiply value; multiply 24 times 1 //Divide by 2 PLL divide value; it can be either PLL divide value //(when PLL is enabled), or Bypass-mode divide value //(PLL in bypass mode, if PLL multiply value is set to 1) }; main() { /*初始化CSL库*/ CSL_init(); /*设置系统的运行速度为144MHz*/ PLL_config(&myConfig); /*确定方向为输出*/ GPIO_RSET(IODIR, 0xFF); while(1) { GPIO_RSET(IODATA, 0x40); delay(); GPIO_RSET(IODATA, 0x00); delay(); } } void delay() { Uint32 j = 0,k = 0; for(j = 0;j<0x30;j++) { for(k= 0;k<0xffff;k++) {} } } /******************************************************************************\ * End of gpio.c \******************************************************************************/
由于本次实验使用的是精能冠电子核心板的核心板,核心板上是将LED接到GPIO6的。
3.4 编译运行
运行后LED,闪烁,本次移植成功。
文章来源:https://www.toymoban.com/news/detail-468660.html
四、后记
由于暂时对CSL其他库还不了解,不清楚应该怎么用起来,暂时没有移植其他例程的计划。但是在此文基础上,参考相关例程应该是可以很快完成相关移植的。文章来源地址https://www.toymoban.com/news/detail-468660.html
到了这里,关于11.TMS320C5509V+Win10+CCS8开发环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!