首先,c2000有多重启动方式,可以从datasheet 29页看到支持的启动模式,目前基本上都是使用仿真器,很少有使用其他方式下载的方案提供,不过有个SDflash软件,可以研究一下
Table 3-6. Boot Mode Selection
GetMode
Wait (see Section 3.3.10 for description)
SCI
Parallel IO
EMU x x 1 Emulation Boot (就是仿真器)
很多人接触这个都是因为收到了21ic发的c2000开发套件,但发现上面的芯片写着TMX320f28035,感觉不解,请看datasheet 98页
TMX Experimental device that is not necessarily representative of the final device's electrical specifications
TMP Final silicon die that conforms to the device's electrical specifications but has not completed quality and reliability verification
TMS Fully qualified production device
X就是实验用的,内部存在一些东西不支持,P就是确定电气特征,但不完全确定质量,S才是质量可靠的。
我拿到的是官网的28035实验套件。
首先,对于软件的使用:有ccs3.3和官网提供的ccs4可供选择,建议选择ccs4,因为在ccs4里可以选择位。这是eclipse开发环境的好处。
ccs3需要有型号支持,一般网上下载的ccs3.3都是不支持28035的,如果你一定要用,可以留言。我发给你。
然后就是你要下载一个库,里面包含了所有功能的实例代码和头文件、cmd文件,然后把它放到不要有中文名的路径下,随便放哪。
<注:以下为针对ccs4的版本>
然后开始新建工程:
新建一个工程都用默认选项,就是选择型号那里要选28035,这时会新建一个只有28035_RAM_link.cmd的工程。
注意:ccs可以同时打开多个工程,但只有黑粗体的那个工程才是当前激活工程,(也就是说你按编译,他就会编译那个黑粗体的工程)
可以右键设置任一工程为激活工程
然后右击当前工程link files to project
然后将你下载的那个库里的以下文件link进去
DSP2803x_CodeStartBranch.asm
DSP2803x_DefaultIsr.c
DSP2803x_PieCtrl.c
DSP2803x_PieVect.c
DSP2803x_SysCtrl.c
DSP2803x_usDelay.asm
DSP2803x_CodeStartBranch.asm
DSP2803x_Headers_nonBIOS.cmd
一共八个文件,在不同的目录里,就在common和header的文件夹里,自己多找找就可以找到这几个文件了。
添加完文件了再就是添加include目录,因为那些头文件都在你放的库的目录里,你不添加进来这些.c文件会找不到定义。
右击工程点击build properties,然后在tool setting里面有很多东西,但我们只要关注两个东西:
C2000 copalier下的include options和C2000 linker下的basic options
在include option里添加D:\v121\DSP2803x_common\include和D:\v121\DSP2803x_headers\include (注:这是我电脑上的路径,你们看情况)。然后再C2000 linker下的basic options里设置stack size,堆栈大小,可以设置成200或者300都可以。
然后保存设置,退出来。
新建一个main.c
写上下面的:
#include "DSP28x_Project.h"
void main(void)
{
InitSysCtrl();//将系统时钟设置为60M,如果是自己diy的板子,时钟不是10M,可以研究里面的参数设置一下
DINT;//关掉总中断
InitPieCtrl();//在dsp里,中断通过pie控制器来管理中断响应
IER = 0x0000;//这个是12组中断使能寄存器,都关掉
IFR = 0x0000;//这个是12组中断的标志位,清零
InitPieVectTable();//这个是初始化中断向量表的,就是将各种中断的中断函数入口地址指派一下
EALLOW; //在dsp里,有些寄存器设置时要先解开寄存器保护,这个命令是解开保护,下面这几条是设置io的功能
GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 0; //GPIO31作为普通IO
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; //GPIO34作为普通IO
GpioCtrlRegs.GPADIR.bit.GPIO31 = 1; //GPIO31方向为输出
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1; //GPIO34方向为输出
EDIS; //对应解开保护,这个是关闭保护
while(1)
{
DSP28x_usDelay(10000000);//这个函数是用汇编定义的,在DSP2803x_usDelay.asm里面定义的,比较准确,参数是long 型的。?
GpioDataRegs.GPATOGGLE.bit.GPIO31 = 1; //GPIO31端口电平翻转一次
GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1; //GPIO34端口电平翻转一次
}
}
然后编译,不会有错误。
然后就是下载
点击
target-launch ti debugger
target-connect target 此时会出现错误,连接不上(如果你没出现错误,下面的略过)
//*********************错误解决步**********************************
先把连接结束(terminate all)
点击target-new target configuration
然后会弹出一个文件,在里面设置connection为xds100v1.0,然后选型号为28035 experiment kit然后save
然后重新编译、重复launch connect步骤,如果你还是在connect步骤出错,重启ccs就可以了。
//*********************错误步**********************************
load program 选择你的工程debug目录下的.out文件,然后点击debug窗口的run就可以全速运行了,单步、over什么的不用我教了 |