"); //-->
PRD函数大多被用于那些需要定时执行的函数,特别是一些需要周期性地执行而其执行频率很低地函数。如:键盘等慢速I/O设备地扫描,WATCHDOG地监控等。这些简单地应用情况我们仅仅需要在创建PRD模块时说明该PRD模块执行地时间间隔即可。而有些时候,我们需要根据条件来启动周期性函数,或对一些周期性函数进行延时操作,这是就可以调用PRD_start和PRD_stop等API函数来增强PRD模块地管理。
PRD函数实际上是由内核的PRD_swi(SWI对象)来管理的。当用户在DSP/BIOS配置工具中建立一个PRD对象后,系统内核将自动创建一个软件中断模块PRD_swi。当PRD_tick函数计数达到预设值时,内核启动PRD_swi模块,并由该模块具体确定将哪个PRD对象放到执行队列中等待运行。
二、PRD模块配置
1、根据实时时钟确定函数运行地时间
打开PRD模块地属性修改窗口,勾选“Use CLK Manager to driver PRD”框,以启动运行周期函数管理程序。然后在每个PRD对象属性窗口中,设置该对象调用函数的执行频率。
注意:当程序中有多个PRD对象时,所有的PRD对象都是由同一个周期计数器来驱动的。通常情况下,是由DSP/BIOS的时钟CL模块来管理的。每一个PRD对象在不同的周期内完成自己的功能。
2、根据I/O地可用性或者一些其他事件确定函数运行时间
如果用户想自己管理周期函数的计数器,则需勾除“Use CLK Manager to driver PRD”框,然后在程序中自己调用PRD_tick来对周期计数器加1,已保证周期函数能顺利启动。
三、PRD模块API函数说明
1、PRD_getticks:返回周期性函数执行的计数值;
2、PRD_start:启动该PRD模块计数器;
3、PRD_stop:停止该PRD模块计数器;
4、PRD_tick:系统内核或用户调用该函数完成对PRD管理模块的计数;
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。