嵌入式系统软件定时器的扩展与应用管理*
2018-10-15,,,,
单片机与嵌入式系统应用 2018年10期
,,,,
(1.齐鲁工业大学(山东省科学院),济南 250353;2.山东省科学院自动化研究所;3.山东省汽车电子技术重点实验室)
引 言
在嵌入式软件设计中,时间是一个很重要的参数,很多控制逻辑和协议都有时间约束,定时是实现这些控制逻辑和协议的关键手段[1]。在嵌入式系统中,一般而言,硬件定时器的数量少于定时应用的数量,因此,不可能为每一个定时应用单独分配一个硬件定时器。在这种情况下,设计一种软件定时器,使用单个硬件定时器模拟多个软件定时器来满足应用中的定时需要,成为一种比较通用的做法。
参考文献[2]提出了一种基于单个硬件定时器实现多个定时应用的方法,根据定时值从小到大的顺序维护定时项链表,每次加入一个新的定时项,都需要更新链表,而且需要在硬件定时器中断处理程序中不断更新硬件定时周期设置,这种方式需要考虑中断处理程序执行时间对各个定时项的影响。参考文献[3]定义了全局软件定时器数组,但是没有描述软件定时器的数据结构,并且只是针对单次定时,没有考虑多次定时和循环定时,而且在硬件定时器中断处理函数中对全局软件定时器数组进行操作容易引起中断处理程序执行时间过长,导致中断嵌套,引发堆栈溢出等问题。参考文献[4]提出了一种采用单个定时器管理进程取代多个定时任务进程的方式,解决了多个定时进程消耗内存资源的问题。但是它采用链表的形……
登录APP查看全文
