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 06:49
  3.5 进一步探索
      为进一步了解CCS,试作如下工作:
      o    加载myhello.out 并在LOG_printf行设置断点,选取Debug→Breakpoints并在IDL_F_loop上设置断点。(在弹出对话框的Location栏中键入IDL_F_loop,并点击Add)。
      运行程序 在第一个断点处,使用View CPU Registers CPU Registers观察寄存器值。注意:当主函数执行时,INTM=1表明中断非使能。
      运行到下一个断点 注意现在INTM=0,表明中断使能。注意在执行程序时将重复遇到该断点。
      启动进程和主函数执行完毕后,DSP/BIOS应用程序将进入空循环的后台线程。空循环由IDL 模块管理, 直到程序暂停时才结束工作;它在中断使能有效时循环,且允许响应任一ISR中断信号,能满足实时任务处理的要求。第五、六、七章将进一步阐述ISRs和DSP/BIOS的软中断。
      o    在MS-DOS窗口中,键入以下命令行可运行sectti.exe程序。如果安装路径不是c:/ti,则须将路径修改为安装了CCS 的目录路径。
<span style="line-height: 1.5;">        cd c:/ti/c5400/tutorial/hello1</span>
<span style="line-height: 1.5;">                sectti hello.out > hello1.prn</span>
<span style="line-height: 1.5;">                cd ../hello2</span>
<span style="line-height: 1.5;">                sectti hello.out > hello2.prn</span>
比较hello1.prn和 hello2.prn文件可以发现使用stdio.h和DSP/BIOS时存储器段和空间大小的差别。与使用stdio中的puts()函数相比,DSP/BIOS调用LOG_printf时.text段占用的空间小。有关sectti工具的其它信息可参见TMS320C54x DSP/BIOS 用户指南。
      3.6 进一步学习
      进一步学习使用CCS 和DSP/BIOS,请参见CCS中 的在线帮助,也可参见CCS 用户指南和TMS320C54x  DSP/BIOS 用户指南

一周热门 更多>