深入DSP/BIOS的API函数 - 周期函数PRD

[复制链接]
932|11
手机看帖
扫描二维码
随时随地手机跟帖
sunmeat|  楼主 | 2015-10-28 14:48 | 显示全部楼层 |阅读模式
在我们的应用程序中,有一部分应用程序可以根据实时时钟来确定改函数运行的时间,也有一些应用需要根据I/O是否可用或者已经计划好的事件来确定运行的时间。这时,我们可以利用DSP/BIOS提供的PRD来完成这些要求。

一、PRD模块概述

        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对象放到执行队列中等待运行。

相关帖子

sunmeat|  楼主 | 2015-10-28 14:48 | 显示全部楼层
二、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,已保证周期函数能顺利启动。

使用特权

评论回复
sunmeat|  楼主 | 2015-10-28 14:48 | 显示全部楼层
三、PRD模块API函数说明
        1、PRD_getticks:返回周期性函数执行的计数值;
        2、PRD_start:启动该PRD模块计数器;
        3、PRD_stop:停止该PRD模块计数器;
        4、PRD_tick:系统内核或用户调用该函数完成对PRD管理模块的计数;

使用特权

评论回复
zhuotuzi| | 2015-10-29 14:49 | 显示全部楼层
   PRD函数大多被用于那些需要定时执行的函数,特别是一些需要周期性地执行而其执行频率很低地函数

使用特权

评论回复
天灵灵地灵灵| | 2015-10-29 15:19 | 显示全部楼层
如果用户想自己管理周期函数的计数器,则需勾除“Use CLK Manager to driver PRD”框,然后在程序中自己调用PRD_tick来对周期计数器加1,已保证周期函数能顺利启动

使用特权

评论回复
309030| | 2015-10-31 10:23 | 显示全部楼层
PRD函数实际上是由内核的PRD_swi(SWI对象)来管理的

使用特权

评论回复
734774645| | 2015-10-31 16:40 | 显示全部楼层
PRD函数实际上是由内核的PRD_swi(SWI对象)来管理的

使用特权

评论回复
公孙璇娟| | 2015-10-31 17:22 | 显示全部楼层
:lol学习了,讲解的很详细的。谢谢楼主了

使用特权

评论回复
可可球| | 2015-10-31 20:55 | 显示全部楼层
  PRD函数实际上是由内核的PRD_swi(SWI对象)来管理的

使用特权

评论回复
DreamofOven| | 2015-10-31 21:36 | 显示全部楼层
PRD函数实际上是由内核的PRD_swi(SWI对象)来管理的。

使用特权

评论回复
suzhanhua| | 2015-10-31 22:55 | 显示全部楼层
PRD模块配置

使用特权

评论回复
suzhanhua| | 2015-10-31 22:55 | 显示全部楼层
配置PRD寄存器就OK了‘

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

208

主题

2132

帖子

13

粉丝