一种嵌入式微调度器的实现方法

一种嵌入式微调度器的实现方法

ID:3915639

大小:171.79 KB

页数:3页

时间:2017-11-25

一种嵌入式微调度器的实现方法_第1页
一种嵌入式微调度器的实现方法_第2页
一种嵌入式微调度器的实现方法_第3页
资源描述:

《一种嵌入式微调度器的实现方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、维普资讯http://www.cqvip.com一种嵌入式微调度矗的实现方法*■重庆邮电大学曾素华蒋建春常用的嵌入式操作系统不能很好地满足中低端仪器仪表小内核、高实时性、高可靠性的要求。本文通过摘要分析常见嵌入式操作系统的任务调度算法,提出一种新的应用于智能仪表的实时任务调度算法,并在典型的8位、16位SoC上进行设计,实现了基于这种算法的嵌入式操作系统。关键词微调度器仪器仪表调度算法智能仪表是自动控制技术的重要组成部分。随着智优先级反转时临时采用动态优先级算法。能仪表在工业控制、通信和汽车电子中的广泛应用,智能仪表逐渐向数字化、网络化、智能化方向发展;同时

2、,智能2仪器仪表对调度算法的要求仪表复杂度不断增加,对实时性要求几乎达到了苛刻的程为了提高仪表的可靠性,实现高性能、多功能应用,应度。在编程方式和代码重复利用等方面,超循环方式的智用于智能仪表的调度器必须满足以下要求:能仪表越来越不能满足资源管理和系统的实时要求,迫切①良好的实时性。智能仪表必须实时地对通过现场需要在中低端智能仪表中加入一些轻量级的多任务管理总线采集的数据进行数字编码,通过人机界面进行显示,的调度器或实时操作系统。本文根据智能仪表对嵌入式并把用户对被监控系统的参数设置实时地传送给执行操作系统的特殊要求设计了一种新的任务调度算法,并实部件。现了

3、一个应用于中低端仪器仪表的嵌入式微调度器。②基于优先级的任务调度策略。在复杂的大规模应用中需要使用大量的传感器、执行器和控制器等,对其数1实时任务调度的一般方法和策略据显示和传输控制需要通过不同优先级的任务来控制。在实时操作系统中,系统把应用分为行为可以预知③低消耗要求。随着应用环境的复杂化,对智能仪的、功能确定的多个任务。每个任务一般处于3种状态:表的计算能力要求越来越高,势必要求调度器必须占用较执行状态、就绪状态和等待状态(有的操作系统还具有挂少的系统资源。起和休眠状态)。为了满足实时性要求,系统根据一定的④低成本要求。为了降低成本,在硬件设计上,存储原

4、则选择合适的任务执行。器的大小是成本控制的一个方面。因此,要求提供的调度常见的任务调度算法分为静态算法和动态算法两类:器必须具备小内核以减小存储空间。①静态算法:在系统在运行前(即系统初始化阶段),此外,还要求调度器必须有精确定时的功能,也就是就为所有的任务分配固定的优先级别,在系统执行过程中事件驱动和时钟驱动相结合,以满足智能仪表中周期性任优先级保持不变。当一个事件发生时,调度程序只需要查务执行和突发性任务执行的需要。就绪表,就可以调度哪个任务处于运行状态。②动态算法:在系统初始化时初步分配一个优先3嵌入式微调度器的设计与实现级。每一个任务在运行时可以改变

5、它的优先级。根据智能仪表对调度算法实时性、多任务、低消耗的当前的嵌入式操作系统一般采用静态算法,只在处理要求,本文提出了一种新的静态优先级,单任务队列、具有4种任务状态的非抢占式调度的轻量级任务调度算法,并根据这种算法实现了应用于智能仪表的调度器。该算法*①国家高技术研究发展计划(863计划)(2006AAI1A1C1—3,汽车的特点是以任务在任务控制块数组中的相对位置表示优节气门控制软件及电控系统支撑技术开发);②国家高技术研究发展计划(863计划)(2006AAllA107—2,长安先级高低,任务的状态和延时量使用统一的任务状态字,混合动力汽车标定系统开

6、发)。在少量任务的轻量级应用中具有很好的时间和空间性能。paper@mesnet.corn.cn(投稿专用)维普资讯http://www.cqvip.com3.1任务的状态U8prior;//任务优先级)TCB;在本调度器中任务有4种状态:就绪状态、运行状态、3.2.2任务调度算法及实现等待状态和挂起状态。内存中的任务必须处于这4种状态之一。这种算法已在16位单片机MotorolaMC9S12DP256B和就绪状态:指任务运行的时间条件和资源条件都满8位单片机AT89C52上实现。一些与硬件相关的算法,主足,等待调度算法选择最合适的任务进入就绪状态。任务要给

7、出在MC9S12DP256B上的算法实现。一旦建立就处于就绪状态,这一点和C/OS~II相同。①建立任务Os—Task-Create()算法。任务创建函数运行状态:是当前时刻任务占有CPU资源正在运行代码如下:voidOs—Task的状态。本调度算法选择进入就绪任务队列中优先级最_Create(Os.STACK*task.stack,uWordtask高的任务运行。任何时刻只能有一个任务处于运行状态。—id,pTASKtask__func){os_tcb[task—id].task=task.func;等待状态:如果任务需要等待一段时间才能运行,那os么这个

8、任务当前处于等待状态。使任务延迟一段时间可_tcb~

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。