DSP集成开发环境CCS开发指南_部分10(精) 下载本文

第六章 实时分析

16. 使用Load Control窗口逐渐增加处理load值。(如果在DSP 应用程序停止工 作的情况下滑动Load Control窗口的控制条,则RTDX将新的load控制值缓存在主机上。这些值直到DSP应用程序重新运行、并调用RTDX_readNB以请求从主机刷新load值时才会有影响)。

17. 重复步骤16,直到loadchange_PRD中的Max和Average值增加并在Execution

Graph的Assertion行出现蓝色方块,Assertion表明一个线程不满足实时期限的要求。

为什么?当load值超过某个值时,loadchange_PRD的Max值开始增加,随着load值的增加,processing_SWI需要占用的运行时间长得致使loadchange_PRD在超过实时期限很长时间才能开始运行。

当load值增加到一定程度时,低优先级的idle循环就不再执行,主机

停止接收实时分析数据,DSP/BIOS插件停止刷新,暂停目标程序用排队数据

刷新插件。

82

第六章 实时分析

6.5 修改软中断优先级

为了便于理解程序为什么不满足实时期限的要求,你需要检查软中断任务的优先级。

1. 选择Debug→Halt中止目标程序。

2. 在Project View中双击文件volume.cdb。

3. 加亮SWI manager,注意SWI对象的优先级显示在 窗口的右半部分。

4. 由于PRD_swi和processing_SWI具有相同的优先级,PRD_swi不能先处理

processing_SWI。processing_SWI每10ms运行一次而PRD_swi每2ms运行一次。当load值较高时,processing_SWI运行时间超过2ms,它使得PRD_swi不满足实时期限的要求。

5. 为了解决上述问题,需要把PRD_swi设置成最高优 先级。降低processing_SWI的优先级。这增加了一 个第二级的优先级别,现在PRD_swi具有最高优先 级。

6. 选择File→Save保存你所作的修改。 7. 选择File→Close关闭volume.cdb。

8. 选择Project→Build或者点击工具栏按钮(Incremental Build)

9. 选择File→Reload Program。

10. 选择Debug→Run重新运行目标程序。在程序运行时使用RTDX使能的Windows

应用程序loadctrl.exe应用程序窗口改变load值。

11. 注意:现在可增加load值而不会使PRD_swi不满足实时期限的要求。 12. 在进行下一章之前(完成6.6节之后),需要完成下述操作: o 点击工具栏按钮或者按Shift+F5中止程序运行。 o 关闭GEL对话框、DSP/BIOS插件和源程序窗口。

83

第六章 实时分析 6.6 进一步探索

为了进一步研究DSP/BIOS,试做下述工作:

o 当增加load值时,Execution Graph表明processing_SWI需要的运行时间超过1个PRD计数周期。这是否意味着processing_SWI不满足实时期限的要求?请回忆一下,PRD ticks以每毫秒为时间间隔出现的同时,processing_SWI必须每10ms运行一次。

o 如果直接从硬中断服务例程中调用processing函数而不是从软中断中调用,那将发生什么呢?由于硬中断优先级低于软中断优先级,那将使得程序不满足实时期限的要求。请回忆一下,当Load值很高时,PRD_swi需要先于

processing_SWI执行。如果processing_SWI是一个硬中断,PRD_swi则不能先于它执行。

o 观察CPU Load Graph。使用RTA Control Panel打开和关闭统计累积器,注意这对CPU Load Graph无影响,这表明统计累器在处理器上放置了一个很小的Load值。

统计累积器对processing_SWI的统计数据有多大影响呢?可一边打开和关闭统计累积器,一边观察统计数据,这之间的差别是各累计器所需的指令数的精确计量。为了观察效果,记住对统计数据窗口点击鼠标右键并清除统计计数。 o 就象在5.7节中所做的那样,在loadchange函数中增加函数STS_set和

STS_delta调用。这样的修改对CPU load影响如何?在dataIO函数中增加STS_set和STS_delta的调用,这又将对CPU Load有何影响?为什么?试考虑各函数执行时的频率。对于经常执行的函数而言,它需要的处理时间的细微的增加,都可能对CPU Load造成很大的影响。 6.7 进一步学习

想要更多地了解软中断属性、RTDX和PRD模块,请参见CCS和RTDX的在线帮助或者参考TMS320C54x DSP/BIOS User’s Guide(用户指南)。 84

第七章 I/O 第七章 I/O

本章介绍用DSP/BIOS和RTDX技术实现I/O。

在本章中,将采用RTDX和DSP/BIOS使应用程序与I/O设备相连接。也可以采用DSP/BIOS API的HST、PIP和SWI模块。 基本要求:DSP/BIOS和RTDX组件,目标板 7.1 打开和查看工程

在CCS中打开工程文件并查看它包含的源程序及库文件。

如果你把CCS安装在c:\\ti 目录,可以创建一个新目录c:\\ti\\myproject;如果CCS安装在其他目录,则可在相应的位置建立myproject 目录。 将