
今天是2020.8.14,义县游学电子科技提供跟您分享一个DSP tms320f2812这款芯片如何使用Code Composer Studio 10.1.0 进行仿真,调试,下载的过程.
1开始前准备:
Code Composer Studio 10.1.0地址我无法贴出来因为广告的嫌疑,可以私信我.
TMS320f2812开发板一块,
TMS320f2812头文件下载,地址还是私信.下边这是TI官方下载的压缩包解压后的

仿真器xds100v3一个.
win10系统64位.
2项目建立步骤:
1)打开ccs10,
点击"Project"->"New CCS Project"。
在New CCS Project窗口中,按需要填写以下内容后按"Finish"完成新建空的工程。

输入项目名后,点击完成即可.
2)新建完成后的工程,结构如下

添加系统的头文件
在工程名上右击,添加两个文件夹,分别名为source和include。

打开"tidcs\c28\DSP281x\v120"文件夹,将"DSP281x_headers\include"中的所有头文件复制到刚刚新建的include目录。打开"tidcs\c28\DSP281x\v120"文件夹,将"DSP281x_common\include"中的所有头文件复制到刚刚新建的include目录(会提示文件已存在,覆盖即可)。此时,工程文件夹的结构如图所示:

配置工程
右击工程文件名,选择"Properties"

更改include的选项,在新弹出的窗口中选择"Workspace",然后选择对应工程的"include"目录:


更改链接选项中的"Base option":有文章中说修改项目的默认堆栈大小为0x400,这里我没有设置也是可以正常运行的.

添加必须的头文件代码
在main函数中,添加以下的头文件:这2个头文件在下载的tms320头文件中,
#include "DSP281x_Device.h"//这2个头文件在下载的tms320头文件中,我们已经include目录中了
#include "DSP281x_Examples.h"//这2个头文件在下载的tms320头文件中,
其中,DSP281x_Device.h提供了对应的CPU寄存器的结构体信息,DSP281x_Examples.h主要提供了一个纳秒级的延时函数DELAY_US(A)。不过,为了使用此函数,还需要将一个汇编代码文件添加到工程中:

在项目文件名称上右击,选择"Add Files",打开的窗口中选择"DSP281x_common\source"文件夹中的"DSP281x_usDelay.asm"。然后手动将asm文件拖动到source目录下。

此时,项目文件夹的组织结构如图。
添加必要的源文件
一个能够正常在开发板上运行的工程,应该具备一下的必要的源文件。
添加"DSP281x_headers\source"目录下的"DSP281x_GlobalVariableDefs.c"以指定所有系统结构体的存储位置。添加"DSP281x_common\source"目录下的"DSP281x_SysCtrl.c"以初始化系统的控制选项,包括PLL,看门狗,预分频。添加"DSP281x_common\source"目录下的"DSP281x_Gpio.c"以初始化系统的GPIO口。添加"DSP281x_common\source"目录下的"DSP281x_PieCtrl.c以初始化PIE控制器。添加"DSP281x_common\source"目录下的 "DSP281x_PieVect.c"以初始化PIE向量表。添加"DSP281x_common\source"目录下的"DSP281x_InitPeripherals.c"以初始化其他外设。添加"DSP281x_common\source"目录下的"DSP281x_DefaultIsr.c"以使用默认的中断函数。

添加cmd文件,没有cmd文件项目无法真正的仿真,否则仿真时开发板无变化,个人觉得是属于软件仿真,但是一些非寄存器变量还是正常变化的.而寄存器在打开寄存器视图观察时无变化
本程序非TI的BIOS系统应用,所以需要添加"DSP281x_headers\cmd"目录下的"DSP281x_Headers_nonBIOS.cmd"。
到此,可以尝试编译工程,应该能够正常的编译通过,且没有任何的警告。目录结构应该如下所示(分别是头文件,源文件和链接文件):


写main.cn文件代码:
/*** main.c*/#include "DSP281x_Device.h"#include "DSP281x_Examples.h"int main(void){// 1. 初始化系统控制,PLL,看门狗,预分频InitSysCtrl();// 2. 初始化GPIOEALLOW;GpioMuxRegs.GPAMUX.all=0;//GpioMuxRegs.GPAMUX.bit.C2TRIP_GPIOA14=0;//0数字口GpioMuxRegs.GPADIR.bit.GPIOA14=1;//gpioa14设置为 0输入1输出GpioMuxRegs.GPADIR.all=0xffff;GpioMuxRegs.GPAQUAL.all=0x0000;EDIS;GpioDataRegs.GPADAT.bit.GPIOA14=0;//gpio14写0低GpioDataRegs.GPADAT.bit.GPIOA14=1;//gpio14写1高for(;;){}}
代码解释:这里控制了gpio14脚,先写低再写高.
将程序固化到Flash
将程序固化到flash中需要添加几个文件,
添加"DSP281x_common\cmd"目录下的"F2812.cmd"。添加"DSP281x_common\source"目录下的"DSP281x_CodeStartBranch.asm"。禁用"2812_RAM_lnk.cmd",点击该文件右键选择"exclude from build"即可.

重新编译工程后点击Debug,程序就会自动下载到Flash中,下载完成后,将开发板重新上电,就能够看到对应的LED灯离线运行。
如果你发现灯运行的明显比仿真的时候要慢。是因为Flash实在是太慢。为了能够让程序跑的快些,需要让程序跑在RAM中。这里还没有继续深入研究,后续再写了.
最后总结.首先下载tms320f2812的头文件,这个要去官方下载.然后复制tms320的头文件和一些源文件到项目中.然后复制cmd文件和一个asm文件,然后点击调试按钮即可调试仿真.虽然写了这些,但是也有逻辑不通顺的地方,所以有问题可以直接私信我.我会稍后做个视频供大家查看.
举报/反馈
本文介绍了如何使用Code Composer Studio 10.1.0创建并配置TMS320F2812的DSP项目,包括导入头文件,设置工程属性,添加必要源文件和CMD文件,以实现仿真和下载到开发板的步骤。
4383

被折叠的 条评论
为什么被折叠?



