CCS笔记

来源:互联网 发布:多益网络线上笔试题 编辑:程序博客网 时间:2024/05/29 19:17
在编译工程文件时,CCS按下述路径顺序搜索文件:
1. 包含源文件的目录
2. 编译器和汇编器选项的Include Search Path中列出的目录(从左到右)
3. 列在C54X_C_DIR(编译器)和C54X_A_DIR(汇编器)环境变量定义中的目录(从左到右)。




点击Dis_Assembly窗口中一条汇编指令(点击指令,而不是点击指令的地址或空白区域)。按F1键。CCS将搜索有关那条指令的帮助信息。这是一种获得关于不熟悉的汇编指令的帮助信息的好方法。




Watch Window中双击变量的值就可以直接编辑,编辑后会改变颜色。




目标系统在测试点(Profile Point)处于暂停状态
只要程序运行到一个测试点,它就会自动暂停。所以,当使用测试点时,目标系统应用程序可能不能满足实时期限的要求。(用RTDX则可能实现实时监控)




向工程添加DSP/BIOS文件,注意事项:
输出文件名必须与.cdb文件名匹配
例如myhello.out和 myhello.cdb。选择Project→Options 将出现Build Option窗口,然后选择Linker ,在Output Filename栏中确认输出文件名为myhello.out,点击OK。
加入新生成的配置文件myhellocfg.cmd并取代hello.cmd。
在Project View中的vectors.asm源文件上点击鼠标右键,然后从弹出菜单中选择Remove from project。DSP/BIOS配置文件将自动定义硬中断矢量。
在RTS.lib库文件(这是54xx平台下的库文件,在C6000平台下是rts6400.lib)处点击鼠标右键将它从project中删除。该库已经由myhellocfg.cmd文件自动包含。




所有使用DSP/BIOS API的程序都必须包含头文件std.h 和 log.h。在LOG模块中头文件log.h定义了LOG_Obj的结构并阐述了API的功能。源代码中必须首先包含std.h,而其余模块的顺序并不重要。
源程序中声明了配置文件中创建的LOG对象: C54xx中使用 extern LOG_Obj trace; 而C6000平台使用extern far LOG_Obj trace; 或者也可以使用#include "hellocfg.h"来自动引入相关的LOG对象
主函数返回时,程序进入DSP/BIOS空循环,DSP/BIOS在空循环中等待软中断和硬中断信号




在某些目标系统中Profiling 和RTDX不能同时使用。
在使用Profiling前,关闭使用RTDX的工具,如Message Log或其它的DSP/BIOS 插件。特别是在使用DSP/BIOS插件后,必须确保RTDX无效,选Tools  RTDX启动RTDX 插件,并从下拉菜单中选取RTDX disable,然后点击鼠标右键再选择Hide。(C6000则是在Configuration Control里使能/禁止RTDX)




在ti安装目录的bin目录里有许多小工具,键入-help或-info可以显示帮助信息。或者参考TI的文档:《TMS320C6000 DSP/BIOS Application Programming Interface (API) Reference Guide》等
各个小工具的主要功能介绍如下:
cdbprint.exe 打印一个列表显示一个cdb配置文件中所有已定义的参数,选项-a显示所有对象,-l参数使用内部名称显示,-w只列出可写参数
gconfgen.exe 此工具位于ti\plugins\bios文件夹下,同文件夹有Windows界面程序gconf.exe。它们用来读取.cdb格式的文件并可以生成programcfg.cmd,programcfg_c.c等附属文件。(可以应用于make等脚本中)
nmti.exe 显示一个TI COFF格式文件里的符号和值。
sectti.exe 显示一个TI COFF格式文件(例如.out)中的段信息。
sizeti.exe 显示一个目标文件(例如.obj)中的段大小。
vers.exe 显示系统中已安装的DSP/BIOS源文件或库文件的版本信息。
其他未列出的小工具一般是TI程序内部使用。
另:bin下utilities子文件夹中的工具简介(各个工具都在各自目录下有相关的帮助说明文档):
FlashBurn.exe 与CCS,hex转化工具,FBTC(FlashBurn Target Component)协同工作来便于向FLASH中烧写数据和程序。
tconf.exe 用来调试并输出一个.cdb文件和生成相关的配置文件。
cdbcmp.exe 可以用来比较一个.cdb文件和生成它的CDB模板或者比较两个.cdb文件。
vlnk.exe 同目录下有VisualLinker.exe,一个可视化的连接器。




探针断点(Probe Point)的使用方法:
将来自PC主机文件中的输入数据传送到目标系统的缓存器中供算法使用。
将来自目标系统缓存器中的输出数据传送到PC主机的文件中供分析。(此两条可以在File->File I/O中设置)
用数据更新窗口,如图形窗口。(在Debug->Probe Points中设置)




与断点类似,它们都挂起目标系统来完成自己的动作,但存在如下几个方面的差别 :
探针立即中止目标系统,完成一个操作后,再恢复目标系统的运行。
断点暂停CPU直到人工恢复其运行为止(或者使用Animate命令是中断自动恢复),且更新所有打开的窗口。
每个探测点只能对应一个操作。例如:现在,有两个图形需要刷新,一个文件作为输入,则每一个操作都有各自的探针,所以需要设置三个探测点。
探针允许自动执行文件的输入或输出,而断点则不行。




简单的gel文件示例:
menuitem "Application Control" //添加了菜单项
dialog LoadCaption(loadParm "Load") //定义了一个含有输入框的对话框,标题为LoadCaption,输入框的提示标题为Load,输入值以loadParm变量返回
{
processingLoad = loadParm; //返回值赋值给程序中的某个变量
}
slider Gain(0, 10 ,1, 1, gainParm) //定义了一个滑动条,标题为Gain,滑动条的范围为0到10,步长为1,其值以gainParm变量返回
{
gain = gainParm; //返回值赋值给程序中的某个变量
}




Watch Window只能观察当前作用域的变量。对于不在当前作用域的变量可以使用Call Stack窗口选择作用域进行查看。




LOG对象LOG_system在程序运行时记录各种DSP/BIOS模块的系统跟踪事件。
由于保存配置文件时会产生汇编语言文件,所以C函数(或C变量)名称要加一下划线作前缀。此下划线前缀是约定由汇编转而访问C函数的一种标记。此规则仅适用于用户编写的C函数,对于配置文件产生的对象或DSP/BIOS API调用则无须加下划线前缀,因为相应的两种名称会自动建立,一种会被加上前缀,一种则不会有前缀。
当有其它高优先级线程占用了CPU的全部处理时间,则由于刷新过程在空闲任务中实现,而空闲任务在该程序中具有最低优先级,所以无足够的时间用于主机控制完成更新。CPU Load Graph窗口 和 Execution Graph窗口将停止频繁刷新甚至于可以停止刷新。此时,程序不满足其实时期限的要求。
如果使用配置文件,DSP/BIOS自动支持统计功能(如Statistics View窗口),这称为隐式测试。也可使用API调用收集其他统计数据,这称为显式测试。




RTDX_CreateInputChannel(control_channel);来创建用于与主机通讯的通道
RTDX_enableInput(&control_channel);使能此通道

























































原创粉丝点击