多任务程序架构的搭建
2011-08-08虞益龙
电脑与电信 2011年12期
虞益龙
(常州刘国钧高等职业技术学校,江苏 常州 213000)
1.引言
传统的单片机程序设计多为单任务系统,其业务逻辑顺序安排在主函数中,主函数一般为死循环,循环过程中通过调用函数来完成相应的操作,而对于一些较短的实时任务则通过中断方式进行处理。此种程序结构简单、直观,易于实现,但对于较复杂的应用此种结构实现不了,并且不能满足实时性要求较高的场合,因此必须考虑一种新的结构模式。
本文提出的方法也是按时间片切换任务的,但不同的是,执行任务的时间不是由定时器平均分配的,而是按照执行任务中一个完整过程的时间来自动分配的。在单片机系统程式设计中,可按系统的功能或模块划分为任务,而每个任务可按具体作业细分为各个过程。可见任务由过程组成。按时间片分配任务的设计,系统效率就会更高。
2.多任务轮循程序架构
多任务轮循程序架构就是一个系统由多个任务构成,各任务之间相对独立。本文提出一种基于定时器中断的多任务轮循程序架构,如图1所示。在主程序中,根据任务延时量判断任务是否就绪,各任务轮循占用CPU时间,由任务延时量控制任务执行频度及CPU关照度,而任务延时量又由定时器T0中断控制。

图1 定时中断的多任务轮循程序架构流程图
基于定时器中断的多任务轮循架构中,子任务的执行依靠主程序任务调度来实现,子任务不能设计成死循环流程。正因为各任务不抢占CPU,所以程序设计不用考虑现场保护问题,简化了程序设计。……
登录APP查看全文
