首页 理论教育 如何编写CCS工程?

如何编写CCS工程?

时间:2023-06-24 理论教育 版权反馈
【摘要】:在编写用户代码之前,首先要将必要的系统源文件、头文件添加到工程中去,组成最小DSP软件系统。还有公用函数的声明,如DSP2833x_DefaultIsr.h等。汇编文件中,主要需要包含片上ADC模块校准文件DSP2833x_ADC_cal.asm、程序代码启动跳转文件DSP2833x_CodeStartBranch.asm及微秒延时文件DSP2833x_usDelay.asm。在Flash烧写时,如果需烧写密码,还可以添加DSP2833x_CSMPasswords.asm文件。对于F28332、F28334型号DSP芯片,操作类似。对于F28335,应添加f28335.gel文件。

如何编写CCS工程?

在编写用户代码之前,首先要将必要的系统源文件、头文件添加到工程中去,组成最小DSP软件系统。这些系统文件可以在TI官网上下载sprc530.zip并安装后获得(安装后为V131文件夹)。系统文件主要有:

●.h文件。这些头文件主要是片内各外设寄存器对应的结构体、联合体类型的声明及变量类型、全局变量的宏定义,如DSP2833x_Device.h,DSP2833x_Adc.h等。还有公用函数的声明,如DSP2833x_DefaultIsr.h等。

●.c文件。比较重要的是寄存器变量的定义及空间映射文件DSP2833x_GlobalVari- ableDefs.c,还有一些通用的系统或者外设初始化源代码文件,如DSP2833x_SysCtrl.c里主要包含了系统时钟配置、看门狗配置等函数;DSP2833x_DefaultIsr.c里定义了系统所有默认的中断服务函数;DSP2833x_PieVect.c、DSP2833x_PieCtrl.c里主要包含PIE中断向量表的初始化。其他的外设.c文件,如DSP2833x_CpuTimers.c等,可根据需要添加。

●.asm文件。汇编文件中,主要需要包含片上ADC模块校准文件DSP2833x_ADC_cal.asm、程序代码启动跳转文件DSP2833x_CodeStartBranch.asm及微秒延时文件DSP2833x_usDelay.asm。在Flash烧写时,如果需烧写密码,还可以添加DSP2833x_CSMPasswords.asm文件。

●.cmd文件。F28335工程一般需要包含两个cmd文件,其中一个是DSP2833x_Headers_non-BIOS.cmd,里面主要是片上寄存器的空间映射。对于另一个cmd文件,如果软件工程为RAM工程,则需添加28335_RAM_lnk.cmd,该文件主要定义划分了目标板上RAM空间的资源分配及软件程序在RAM空间上的映射;如果软件工程为Flash工程,则需添加F28335.cmd文件,该文件定义了目标板上存储空间的资源分配(包括RAM及Flash),并对软件程序在空间上的映射进行划分。对于F28332、F28334型号DSP芯片,操作类似。

●.lib文件。实时运行库文件,如rts2800_ml_eh.lib。

●.gel文件。对于F28335,应添加f28335.gel文件。GEL(General Extension Language)文件在配置目标板链接文件时设置,其可用来配置CCS开发环境并可初始化CPU,如在DSP板链接上CCS后,可通过菜单“Scripts→Set PLL Ratio”配置PLL分频系数。在某些场合,gel文件不可缺少。例如,如果系统通过XINTF接口外扩了RAM存储器,且软件程序中将一些初始化变量或常量映射至外部RAM空间,则在load程序时,需要使用gel文件预先使能XINTF接口,否则程序load出错。对于F28332、F28334型号DSP芯片,需添加各自的.gel文件。

978-7-111-49650-2-Chapter03-18.jpg

图3-18 导入文件后的工程

这些系统文件可通过上述“Add Files”的方式添加到工程中去,而在CCSv5中,这些文件也可以直接复制到当前工程所在的文件夹内,CCSv5会自动将其添加到工程中。这里选择后者,并新建文件夹对这些文件进行归类。添加完系统文件夹后的“Project Explorer”窗口如图3-18所示。其中,cmd文件夹下为.cmd文件,include文件夹下为系统.h文件,source文件夹下为系统.c及.asm文件。

在新建的IIRMain.c及IIR.h文件中输入源代码。这里举一简单2阶IIR滤波应用实例,在IIRMain.c中编写如下程序代码:

978-7-111-49650-2-Chapter03-19.jpg

978-7-111-49650-2-Chapter03-20.jpg(www.xing528.com)

程序中所包含的两个DSP头文件,主要是对DSP通用系统函数、变量类型及相关宏定义的声明,如对InitSysCtrl()函数的声明,对变量类型Uint16的定义,对指令DINT的宏定义等。包含math.h文件是因为程序用到了sin函数指令,包含stdlib.h是因为程序中用到rand函数指令。IIR.h是与IIRMain.c相对应的头文件,里面对IIR滤波函数进行了声明。一般程序采用模块化编写方式,每个模块都包含一个.c和一个.h文件,.c文件负责变量、函数定义,而.h文件负责声明,这样有利于程序的移植。

主程序中,需先完成对系统的初始化配置。这里用到的系统函数InitSysCtrl()、InitPi-eCtrl()及InitPieVectTable()是在系统文件中定义的,主要完成对系统时钟、看门狗及PIE中断向量表的初始化。

程序编写完成后,通过“project→Build Project”命令就能对源文件进行编译,根据错误提示窗口的提示对源代码进行修改。

这里,因为DSP系统头文件放在了include文件夹下,与.c文件不在同一个文件目录下,所以要设置编译时的包含路径。右键单击工程名,选择“Properties”,单击“Include Options”选项,在“Add dir to #include search path”栏中单击添加按钮978-7-111-49650-2-Chapter03-21.jpg,在弹出的“Add directory path”对话框中,选择“Workspace”,在弹出的“Folder selection”对话框中选择头文件所在文件夹,单击“OK”按钮。设置完后的“Include Options”选项内容如图3-19所示。

978-7-111-49650-2-Chapter03-22.jpg

图3-19 添加编译包含路径

编译结果在“Console”窗口显示,如图3-20所示,如果程序有语法错误,会在“Problems”窗口中显示,如图3-21所示。这里程序编译通过,“Problems”窗口中无错误记录,且在“Console”中显示已经生成“CCSv5Demo.out”文件。

978-7-111-49650-2-Chapter03-23.jpg

图3-20 Console界面窗口

978-7-111-49650-2-Chapter03-24.jpg

图3-21 Problems界面窗口

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈