CCS教程: 开发DSP/BIOS程序

2019-07-29 16:03发布

本章通过使用DSP/BIOS优化第二章中的hello world实例介绍DSP/BIOS及如何创建、编译、调试和测试使用DSP/BIOS编写的程序。

      基本要求:CCS的DSP/BIOS组件,目标板。
      3.1 创建配置文件
      实现hello world程序的另一种方法是使用DSP/BIOS API的LOG模块,它能在嵌入式程序中提供基本运行服务。对于实时DSP上的应用而言,API模块是最优的。与诸如put()这样的C库函数调用不同,API无需中止目标板中运行的应用程序就能进行实时分析。此外,API代码比标准C库函数的I/O占用空间少且运行快,根据程序需要可使用一个或多个DSP/BIOS模块。

      本章使用DSP/BIOS API修改第二章中的应用程序 (如果要跳过第二章,则须从2.1和2.2节开始)。
      在使用DSP/BIOS API的程序中必须创建一个配置文件,它定义了程序中使用的所有DSP/BIOS对象。本节介绍如何创建配置文件。
      1.如果已经关闭了CCS,则重新开始。选择Project→Open重新打开c:/ti/myprojects/hello1文件夹中的myhello.mak 项目(如你安装其它地方,则在所安装的地方打开含有myprojects的文件夹。)
      2.选择File→New→DSP/BIOS  Config,弹出一个含有“c54xx.cdb”和“sd54.cdb”的窗口。
      3.在此窗口中选择与你的系统板相适应的DSP模板,然后点击OK(TMS320C54X DSP/BIOS 用户指南阐述了怎样创建一个用户模板),将出现上面这样一个窗口,点击左边的+和-字符能扩张和收缩列表单,窗口右边显示窗口左边选中对象的属性。
      4.在LOG-Event Log Manager处点击鼠标右键,从弹出菜单中选择Insert LOG, 这时创建一个名为LOG0的LOG对象。
      5.在LOG0处点击鼠标右键,从弹出菜单中选择Rename,键入trace即改变此对象名称为trace。
      6.选择File→Save。在弹出窗口中选择你的工作路径(通常是c:/ti/myprojects/hello 1),并将此配置保存为myhello.cdb,实际上创建了下述文件:
o    myhello.cdb     保存配置设置
o    myhellocfg.cmd  连接命令文件
o    myhellocfg.s54   汇编语言源文件
o    myhellocfg.h54   由myhellocfg.h54包含的汇编语言头文件

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
huangfeng33
2019-07-30 01:44
3.3 用CCS 测试
      由于使用LOG的程序只写了一行,没有更多的内容需要分析。在第五、六、七章中将用更多的方法分析程序功能。
      1.    选择File→Load Program 选取myhello.out并点击open。
      2.    选择Debug→Go Main。
      3.    选择Tools→DSP/BIOS→Message Log,在CCS 窗口底部出现一个Message Log 窗口。
      4.    在Message Log窗口中点击鼠标右键,从弹出的菜单中选择Property Page。
      5.    选择trace作为监视对象,然后点击OK。缺省的刷新频率为1秒。(如果要修改刷新频率,可选择Tools→DSP/BIOS→RTA Control Panel。在RTA Control Panel处点击鼠标右键,选择Property Page并选取一个新的刷新频率,点击OK。)
      6.选择Debug→Run 或按F5。 hello world信息将出现在Message Log 区域内。
      7.    选择Debug→Halt或按 Shift F5暂停程序运行。主函数返回后,程序在DSP/BIOS空循环中等待中断信号,欲了解空循环的更多信息,请参见3.5节。
      8.    在Message Log中点击鼠标右键,然后选择Close关闭Message Log。在下一节中将使用Profiler,因此必须关闭Message Log。
      9.    选择Tools→RTDX启动RTDX插件,并从下拉的菜单中选取RTDX disable,然后点击鼠标右键并选择Hide。                                 
      注意:在某些目标系统中Profiling 和RTDX不能同时使用。
      在使用Profiling前,关闭使用RTDX的工具,如Message Log或其它的DSP/BIOS 插件。特别是在使用DSP/BIOS插件后,必须确保RTDX无效,选Tools RTDX启动RTDX 插件,并从下拉菜单中选取RTDX disable,然后点击鼠标右键再选择Hide。反之亦然,如2.8节所述。
      当试图同时使用Profiling和RTDX时将导致错误信息,见上图。
      3.4 测算DSP/BIOS代码执行时间
      LOG_printf所需的指令周期数,可像前面的puts()一样,利用CCS的功能来测算。
      1.    选择File→Reload Program。
      2.    选择Profiler→Enable Clock,在Enable Clock旁边可见到√。
      3.    在Project View中,双击hello.c文件。
      4.    选择View→Mixed Source/ASM,则灰 {MOD}的汇编指令紧随C源程序。
      5.    将光标放在LOG_printf(&trace, "hello world!")行上。
      6.    点击工具栏按钮(Toggle Profile-point),则这一行和其下一行的汇编指令变为绿 {MOD}高亮显示。
      7.    向下移动滚动条,把光标放在程序结尾的大括号所在的行上,然后点击工具栏按钮(Toggle Profile-point),你可能会认为在程序的return行上设置了第二个测试点。但是,要注意直到大括号后一直没有相应的汇编语言显示出来。如果在return这一行上设置了测试点,CCS 将在程序运行时自动纠正这一问题。
      8.    选择Project→View Statistics。
      9.    点击(Run)工具栏按钮或按F5运行程序。
      10.注意在第二个测试点显示的指令周期数为58(实际中可能稍有不同),这是执行LOG_printf函数需要的指令周期数。由于字符串的格式化在PC主机上、而不是在目标系统DSP上完成,因此调用LOG_printf的效率很高。LOG_printf需要的58个指令周期,而在第二章结束时测试的put()则需要2800个指令周期。在应用程序中调用LOG_printf监视系统状态对程序执行几乎没有影响。
      11.  点击工具栏按钮或按Shift F5暂停程序运行。
      12.  在进行下一章的工作之前(3.5节结束之后)做下述工作,释放测试时占用的资源。
<span style="line-height: 1.5;">o  进入Profiler 菜单,撤消Enable Clock前的“√”。</span>
<span style="line-height: 1.5;">o  在Profiler Statistics 窗口中点击鼠标右键,并从打开的菜单选择Hide</span>
<span style="line-height: 1.5;">o  选取Profiler→Profile-points,然后选择Delete All ,点击OK。</span>
<span style="line-height: 1.5;">o  进入View菜单,撤消Mixed Source/ASM前的“√”。</span>
<span style="line-height: 1.5;">o  关闭所有的源文件和配置窗口。</span>
<span style="line-height: 1.5;">o  选择Project→Close关闭Project</span>

一周热门 更多>