- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九讲定时.ppt
课前回顾 同步机制 Mutex Condition variables Semaphore Maibox Message queue Event flags Spinlock 学习目标 了解 定时机制:Counter Alarm Clock Timer 学习指南 硬件必须提供一个周期性的时钟或定时器,用于支持系统中与时间相关的功能部件。目前许多CPU 都有一个内置定时器,它提供周期性的中断,可以对时间相关的功能部件提供支持。如果没有内置定时器,则必须使用外部定时器或时钟。eCos提供的定时机制包括计数器(Counter)、时钟(Clock)、告警器(Alarm)和 定 时 器(Timer)。 计数器对某些特殊事件进行单调递增计数。 时钟是一个对具有一定周期性的时间滴答进行计数的计数器(对时间进行计数)。 告警器是在计数器的基础上增加一个产生提示功能的机制,或者基于计数器的值产生具有周期性的事件。 定时器是一个简单的附加在时钟上面的告警器。 难重点 Counter Alarm Clock Timer 他们的数据结构 知识点 Counter Alarm Clock Timer 计数器 counter 内核计数器用于对特殊事件发生的次数进行跟踪,这些特殊事件通常是某种类型的外部信号。计数器的最普通的一个实现就是时钟。应用程序可以在计数器上附加一个告警器,当某类事件发生次数达到一定的数目时调用某个相应的函数(告警函数)。 计数器 counter 数据结构如下 // Counter object. class Cyg_Counter { friend class Cyg_Alarm; #if defined(CYGIMP_KERNEL_COUNTERS_SINGLE_LIST) Cyg_Alarm_List alarm_list; // Linear list of Alarms #elif defined(CYGIMP_KERNEL_COUNTERS_MULTI_LIST) Cyg_Alarm_List alarm_list[CYGNUM_KERNEL_COUNTERS_MULTI_LIST_SIZE]; #endif volatile cyg_tick_count counter; // counter value cyg_uint32 increment; // increment per tick public: CYGDBG_DEFINE_CHECK_THIS Cyg_Counter( cyg_uint32 increment = 1 ); 计数器 counter 数据结构如下 ~Cyg_Counter(); // Return current value of counter cyg_tick_count current_value(); // Return low and high halves of the // counter value. cyg_uint32 current_value_lo(); cyg_uint32 current_value_hi(); // Set the counters current value void set_value( cyg_tick_count new_value); // Advance counter by some number of ticks void tick( cyg_uint32 ticks = 1); // Add an alarm to this counter void add_alarm( Cyg_Alarm *alarm ); // Remove an alarm from this counter void rem_alarm( Cyg_Alarm *alarm ); }; 计数器 counter 通过调用cyg_counter_create函数可以产生一个新的计数器。 该函数的第一个参数用于返回新计数器的句柄,随后对该计数器的操作将使用这个句柄进行;它的第二个参数允许应用程序为该计数器提供所需的内存,从而减少了在内核中进行动态内存分配的需求。 如果不再需要某个计数器并且没有任何告警器与其相连,则可以使用cyg_counter_delete函数删除该计数器并释放其占用的资源,使cyg_counter数据结构可以被重新使用。 计数器 counter 产生一个新计数器时不会自动
您可能关注的文档
- 第三章.doc
- 第三章SPSS数据的预处理为什么要进行数据的预处理.ppt
- 第三章、叶片式流体机械中的能量转换.ppt
- 第三章.ppt
- 第三章习题.doc
- 第一节台湾原住民舞蹈.ppt
- 第三章农业科技.doc
- 第三章健美操的编排与音乐.ppt
- 第三章单相正弦交流电路.ppt
- 第三章免疫球蛋白.ppt.ppt
- 某县纪委监委开展“校园餐”突出问题专项整治工作汇报22.docx
- 中小学校园食品安全与膳食经费管理专项整治工作自查报告66.docx
- 某县委常委、宣传部部长年度民主生活会“四个带头”个人对照检查发言材料.docx
- XX县委领导班子年度述职述廉报告3.docx
- 某县纪委关于校园餐问题整治工作落实情况的报告.docx
- 中小学校园食品安全与膳食经费管理专项整治工作自查报告22.docx
- 某县税务局党委领导班子年度民主生活会“四个带头”对照检查材料.docx
- 某县委书记在县委常委班子年度民主生活会专题学习会上的讲话.docx
- 某县纪委校园餐问题整治工作落实情况的报告.docx
- 某区委副书记、区长年度民主生活会对照检查材料.docx
文档评论(0)