如何在CCS中建立自己的工程
如何在CCS中建立自己的工程
相信有很多人用了好久的CCS了,却不会建立自己的工程文件,大家要不就是在TI的例程里改,要不就是弄的工程文件路径很复杂,而且有时还会有致命的缺点——不能换路径,也就是说放到别的文件夹里就不能用了。
这里呢,笔者将以如何在CCS3.3中建立288335的工程为例,清楚地阐述一个文件不混乱、路径可以随意换的工程的建立过程。
1. 准备工作
首先,去TI的官网下载例程文件, 28335的在这里:
(http://www.ti.com.cn/tool/cn/sprc530),
2812的在这里:
(http://www.ti.com.cn/tool/cn/sprc097)。
下载完毕后安装即可,路径自己定。
接下来,找一个“英文”路径,例如 F:\,在这个路径下面建立一个文件夹,如F:\MyPjt,在这里将要存放你的整个工程文件。
再下来,在刚才的文件夹(如MyPjt)下面再建立5个文件夹,分别命名为“cmd”、”include”、“lib”、“project” 和 “source”。
2. 工程建立过程
(1)打开CCS3.3,如何配置,如何打开就不用多说了吧~
(2)打开菜单Project->New…,弹出Project_Creation对话框。Location选择到刚才建立的文件夹project下(如F:\MyPjt\project),Project中输入你的工程名称(如FirstPjt),会看到Location也变成了F:\MyPjt\project\FirstPjt\,将此路径删减为“F:\MyPjt\project\”。其它不用管,点击Finish完成创建过程。
(3)工程配置。右键点击左边框里的工程名,选择Build Options,弹出如下对话框(注意顶端选项卡选中Compiler),图1:
图1 Build option Compiler选项卡-Basic
Basic选项里面不用设置,点开Advanced,勾上(-ml)和(-mt),再将Float Point Support更改为”fpu32”如图2:
图2 Build option Compiler选项卡-Advanced
下面在点开Preprocessor,在Include Search Path (-i) 中输入 ..\include(注意有两个小点),如图3:
图3 Build option Compiler选项卡-Preprocessor
再点开Diagnostics,勾上(-pdr),如图4:
图4 Build option Compiler选项卡-Diagnostics
好的,Compiler选项卡设置完毕,现在点击顶端的Linker选项卡进行设置。将Basic下的Stack Size(-stack)设置为0x400,注意各型号DSP不完全一样,具体查询相关手册,这里是28335的设置,如图5:
图5 Build option Linkler选项卡-Basic
下面选中Libraries,在Search Path(-i) 中输入 ..\lib(同样有两个点),在Incl.Librarier中输入rts2800_fpu32.lib(这是浮点库,针对28335),如图6。
至此,设置完毕,点击确定。
(4)复制文件。
打开刚才TI例程的安装路径(如”XXX\tidcs\c28\DSP2833x\v131”),打开文件夹”DSP2833x_common”, 再打开文件夹”cmd”,复制其中的两个关于28335的CMD文件(28335_RAM_lnk.cmd和F28335.cmd)到你自己的工程下面的cmd文件夹中;再返回文件夹”DSP2833x_common”,打开文件夹”include”,将图7中选中的8个头文件复制到你的工程下面的include文件夹中;
图6 Build option Linkler选项卡-Libraries
图7 需要复制的头文件
然后再返回文件夹”DSP2833x_common”,打开文件夹”source”,将除”DSP2833x_SWPrioritizedPieVect.c”和”DSP2833x_SWPrioritizedDefaultIsr.c”外的文件(包括.c和.asm)复制到你的工程下面的source文件夹中。
下来再重新TI例程的安装路径(如”XXX\tidcs\c28\DSP2833x\v131”),打开文件夹”DSP2833x_headers”,再打开文件夹”cmd”,如果你不用BIOS,复制CMD文件”DSP2833x_Headers_nonBIOS.cmd”到你的工程下面的cmd文件夹中(你没看错,和上面的是同一个文件夹,下同),如果你用BIOS,请复制另一个,如果你不知道复制哪一个,那么请复制”DSP2833x_Headers_nonBIOS.cmd”,因为一般都不会用到BIOS;再返回文件夹”DSP2833x_headers”,打开文件夹”include”,复制里面所有头文件至你的工程下面的include文件夹中,然后再返回文件夹”DSP2833x_headers”,打开文件夹”source”,将所有文件(貌似只有一个)复制到你的工程下面的source文件夹中。
最后,到你的CCS3.3安装路径下寻找“\C2000\cgtools\lib”,复制其中的“rts2800_fpu32.lib”到你的工程下面的cmd文件夹中。
(5)添加文件。
现在返回CCS中,右键单击你的工程名,选择Add Files to Project…,查找范围选择工程下面的source文件夹,文件类型选择All Filses(.),然后全选,打开,可以看到所有C文件和ASM文件已经添加到工程中;类似地,再添加cmd文件夹中的文件,注意:如果不用BIOS请添加”DSP2833x_Headers_nonBIOS.cmd”,否则请添加”DSP2833x_Headers_BIOS.cmd”;如果要烧写RAM,请添加“28335_RAM_lnk.cmd”,不烧写RAM而要烧写Flash,则添加“F28335.cmd”,总共添加两个cmd文件。
至此,工程建立基本完成,现在可以编译一下有没有错误了~~~
(6) 关键一步。
现在还差一个包含main函数的文件。很简单,新建一个文件保存为“xx.c”,保存到工程下的source文件夹下。xx.c内容如下:(在其中添加自己的代码即可)。
#include "DSP28x_Project.h" // 包含工程所需头文件
void InitInterrupt();
//===========================================================================
// 函 数 名: main
// 功能描述: 实现系统初始化,以及程序大循环
//===========================================================================
void main()
{
InitSysCtrl(); // 初始化PLL(150MHz),关闭WatchDog,并使能外设时钟
InitGpio(); // 初始化GPIO
InitInterrupt(); // 初始化CPU中断及PIE中断
// InitEPwm(); // 初始化PWM模块
// InitAdc(); // 初始化ADC模块
// InitFlash(); // 初始化Flash
// 复制时间敏感代码至RAM(FLASH运行用)
// MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
for(;;)
{
}
}
//===========================================================================
// -End-
//===========================================================================
阅读过程有问题
微信扫描二维码
发私信交流
iFTrue
更多关于Bootloader的内容,可以微信扫下面二维码【iFtrue未来已来】交流
> 感谢阅读
下一篇: 断点回归RDD:样本少时如何做?
推荐阅读