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-29 20:43
3.2 向工程添加DSP/BIOS文件
      回顾上节所建立的配置文件,它实际上包括四个新文件myhello.cdb、myhellocfg.cmd、myhellocfg.s54、myhellocfg.h54。本节介绍如何向工程添加这些文件并删除被取代的文件。
      1.    选择Project→Add Files to Project  在弹出窗口的文件类型框中选择配置文件(*.cdb),然后选择myhello.cdb并点击Open。注意此时在Project View中的DSP/BIOS Config文件夹下面包含配置文件myhello.cdb。另外,myhellocfg.s54作为源文件出现在source文件夹中。注意在编译工程文件的过程中,CCS在扫描文件间的依赖关系时自动向工程中添加包含文件(在此添加的是myhellocfg.h54)。
      2.    输出文件名必须与.cdb文件名匹配(myhello.out和 myhello.cdb)。选择Project→Options 将出现Build Option窗口,然后选择Linker ,在Output Filename栏中确认输出文件名为myhello.out,点击OK。
      3.再次选择Project→Add  Files to Project,在弹出窗口的文件类型栏中选择Linker Command File(*.cmd), 再选择文件myhellocfg.cmd并点击Open,随之产生如下消息框:
      4.    点击Yes,则加入新生成的配置文件myhellocfg.cmd并取代hello.cmd。
      5.    在Project View中的vectors.asm源文件上点击鼠标右键,然后从弹出菜单中选择Remove from project。DSP/BIOS配置文件将自动定义硬中断矢量。
      6.    在RTS.lib库文件处点击鼠标右键将它从project中删除。该库已经由myhellocfg.cmd文件自动包含。
      7.    双击程序hello.c打开并编辑该文件,在弹出的代码框中如果显示了汇编指令,则选择View→Mixed  Source/ASM可隐藏汇编代码。
      8.    源文件中需修改的内容如下。(可以从c:/ti/c5400/tutorial/hello2/hello.c中复制和粘贴)由于puts()和 LOG_printf使用同样的资源,你必须确保使用                  下面的主函数取代当前存在的主函数。
/* ======== hello.c ======== */
/* DSP/BIOS header files*/
#include <std.h>
#include <log.h>
/* Objects created by the Configuration Tool */
extern LOG_Obj trace;
/* ======= main ======== */
Void main()
{
LOG_printf(&trace, "hello world!");
/* fall into DSP/BIOS idle loop */
return;
}
9.    注意源程序中的下述几点:
      (1)C源程序中包含std.h 和 log.h头文件。所有使用DSP/BIOS API的程序都必须包含头文件std.h 和 log.h。在LOG模块中头文件log.h定义了LOG_Obj的结构并阐述了API的功能。源代码中必须首先包含std.h,而其余模块的顺序并不重要。
      (2)源程序中声明了配置文件中创建的LOG对象。
      (3)主函数中,通过调用LOG_printf,将LOG对象的地址(&trace)和hello world信息传到LOG_printf。
      (4)主函数返回时,程序进入DSP/BIOS空循环,DSP/BIOS在空循环中等待软中断和硬中断信号,第五、六、七章将阐述这些内容。
      10.  选择File→Save 或按Ctrl+S保存修改后的源程序。
      11.  选择Project→Optins,在弹出窗口中选择Compiler,然后选择Category中的 Symbols,并在define symbols中删除FILEIO, 然后点击OK。
      12.  点击工具栏按钮或选择Project→Rebuild  All 。

一周热门 更多>