1、一个完整的工程包含的文件
CCS建立一个完整的工程,至少需要以下4个文件:
1)存储器分配cmd文件:
cmd命令文件是用来分配存储空间的。
2)C语言系统库rts2xx.lib:
rts2xx.lib是C语言系统库,包含了编译器提供的所有功能:①初始化C语言环境(入口地址是_c_int0),②设置堆栈,③提供标准的c语言函数库。
3)包含main函数的c源文件:有且只有一个包含main函数的c源文件,系统库初始化完毕后就把控制权交给main()函数了。
4)矢量跳转表asm汇编文件:
矢量跳转表文件,通常是汇编文件(asm)形式,此文件需要准确的定位在程序的起始地址,其内容是汇编语句中的无条件跳转语句“B”。
2、DSP启动过程理解
入口函数地址最终跳到code_start函数(参见DSP280X_Codestartbranch.asm文件)。
--------------------------------------------------------------------------
|.sect"codestart" |
| |
|code_start: |
|.ifWD_DISABLE == 1 |
| LB wd_disable ;Branch to watchdog disable code |
| .else |
| LB_c_int00 ;Branch to start ofboot.asm in RTS library |
|.endif |
|;end codestart section |
---------------------------------------------------------------------------
上述这个段,根据引导空间不同,被
cmd分配在不同的地址:
ram引导:
BEGIN : origin = 0x000000, length =0x000002
flash引导:
BEGIN : origin = 0x3f7ff6, length = 0x000002
而
_c_int00这个函数,具体代码找不到,该函数应该放在
rts这个库中,这个函数
_c_int00应该是
C初始化
代码的入口地址,在你用C编程的时候,DSP需要执行一段C运行支持库代码以完成C运行环境的初始化,_c_int00就是这段初始化代码的入口地址。执行完初始化代码后,库代码会自动跳到main函数继续运行。
完成的内容有:
c_int0函数进行以下工作以建立
C运行环境:为系统堆栈产生
.stack块,并初始化堆栈指针。
从
.cinit块将初始化数据拷贝到
.bss块中相应的变量。调用
main函数,开始运行
C程序。
3、创建一个完整的工程(以F28335为例)
3.1、创建工程前的准备
打开Setup CCStudio v3.3,配置配置相应型号的板子芯片。这里以F28335为例。
单击F28335 XD510 Emulator,添加该型号仿真器,然后在右侧出现的
F28335 XD510
Emulator仿真器右键单击,选中属性:
按照下图进行配置:
配置好后,点击NEXT,在出现的页面,点击Finsh。
到这里,仿真器配置完毕。
点击Save&Quit,保存并退出,启动CCS。
在创建新工程前,先在建立存放工程的文件夹Demo,将TI例程包中DSP2833x文件夹下的DSP2833x_common文件夹、DSP2833x_headers文件夹复制到Demo文件夹下。完毕后,目录树如下:

3.2、
打开CCS,点击菜单栏里的Project,点击New,会跳出新工程设置的对话框,如下图所示:


在Project栏内填写工程名字:Demo。设置工程存储路径,确认没有问题后点击Finish。CCS中出现刚刚创建的Demo.pjt
3.3、创建主函数文件main.c。
点击菜单栏中的File——>New——>Source File,在编辑区域内出现一个新的Untitled1文件,
然后,点击File——>Save,会出现保存文件的对话框。文件名填写“main.c”,关键要注意保存类型,因为我们现在要建立的是原文件,所以选择“C/C++ Source File(*.c*)”,点击保存。
3.4、添加源文件到工程。
右击Demo工程中Source文件夹,选择添加文件到工程,添加的文件在DSP2833x_common文件夹、DSP2833x_headers文件中的Source文件夹中,以及编写的main.c文件。添加的文件如下图所示:
右击Demo.pjt,添加.cmd文件,分别位于DSP2833x_common文件夹、DSP2833x_headers文件中的cmd文件夹中。
注意:头文件不用手动添加,在添加好*.c文件后,在配置头文件路径后,系统会自动添加头文件到Include文件下。、
否则,手动添加的头文件会被添加到Document文件下。
3.5、工程相关配置。
添加好文件后,右击Demo.pjt,选择编译选项:

在弹出的选项卡中,选择Compile选项页进行如下配置:


头文件的路径,这里是D:DSP_DemoDSP2833x_commoninclude、D:DSP_DemoDSP2833x_headersinclude。
选择Linker选项页,配置如下:

最后,不要忘记链接Jtag.
整个工程创建和配置已经完成,可以进行编译。
由于刚开始接触DSP,在开始时遇到很多问题,对最基本的创建工程都不是很清楚,故借此机会记录下来。可能当中过程存在某些问题,希望大家指正。同时也希望能够帮助到那些像我一样刚接触DSP的朋友们。