单片机实时多任务操作系统分析的论文.docVIP

单片机实时多任务操作系统分析的论文.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机实时多任务操作系统分析的论文.doc

  单片机实时多任务操作系统分析的论文 [摘要]简要介绍美国keil公司开发的应用于mcs51系列单片机的实时多任务操作系统rtx51的基本情况和使用方法;分析这个内核的任务管理和内存管理的运行机制及其对硬件的要求,给出其在软件设计中应注意的问题。      [关键词]单片机 c51 rtx51       一、概述      一般说来,单片机的应用系统中都需要同时执行很多任务,我们可以利用实时操作系统来灵活地安排系统资源。rtx51是美国keil公司开发的一种小型的面向mcs51系列单片机的实时多任务操作系统,它可以工作于8051单片机以及派生家族中,简化了复杂的软件设计,缩短了项目周期。      二、rtx51介绍      rtx51有2个模式:rtx51完全模式和最小模式。rtx51最小模式版是rtx51完全版的一个子集,可以很容易地运行在8051系统上,而不需要外部ram(dxata)。rtx51完全模式有4个任务优先级,可以和中断函数并行处理,各个任务之间通过使用“邮箱”系统来进行信号和消息的传递,可以动态地申请和释放内存;同时,可以强制一个任务停止执行,等待一个中断,或者是其它中断传来的信号量或者消息。   (一)rtx51任务   rtx51包括2类任务:快速任务和标准任务。快速任务有很快的响应速度,每个快速任务使用8051一个单独的寄存器组,并且有自己的堆栈区域。rtx51支持最大同时有3个快速任务。标准任务需要多一点的时间来进行任务切换,因此使用的内部ram相对快速任务要少,所有的标准任务共用1个寄存器组和堆栈。.当任务切换的时候,当前任务的寄存器状态和堆栈内容转移到外部存储器中。rtx51支持最大16个标准任务。   (二)rtx51任务状态   (1)运行(runnign)当前正在运行的任务处于running状态,同一时间只有1个任务可以运行。(2)就绪(ready)等待运行的任务处于ready状态,在当前运行的任务退出运行状态后,就绪队列中优先级最高的任务进入到运行状态。   (3)阻塞(blocked)等待一个事件的任务处于blocked状态,如果事件发生且优先级比正在运行的任务高,此任务进入运行状态;如果优先级比正在运行的任务低,此任务进入ready状态。(4)删除(deleted)没有开始的任务处于删除状态。   (三)rtx51中断处理   rtx51完全模式提供2种方法来处理中断:一种是c51的中断函数,另一种是rtx51的中断。它又可以分为快速任务中断和标准任务中断。对于中断函数这种方法,它同时也可以在不使用rtx51的情况下使用,当中断发生的时候,程序就跳到了相应的中断函数,它和正在运行的任务是互相独立的,中断的处理是在rtx51系统之外,和任务切换规则没有关联。对于任务中断的方法,不管使用快速是标准任务来处理中断,如果中断发生,等待中断的任务就从“等待”状态进入到就绪状态,并按照任务切换规则进行切换。   (四)任务调度rtx51   包含一个事件驱动的任务调度机制,它能够按照任务的优先级进行切换,也就是抢占式多任务系统;另外还有一个可选的时间片轮转切换任务模式,在这种模式下,rtx51使用8051内部定时器t0来产生定时节拍,各任务只在各自分配的定时节拍数(时间片)内执行。当时间片用完后,切换至下一任务运行,因此,各任务是并发执行的。同级别的任务是按照时间片分别占用cpu的。rtx51任务有4个优先级:0、1、2可以分配给标准任务,优先级3是为快速任务保留的。每个任务都可以等待事件的发生,而并不增加系统的负担;任务可以等待消息、信号、中断、超时事件或者它们的组合。   (五)任务控制   为了能描述和控制任务的运行,rtx51为每个任务定义了称作任务控制块的数据结构,主要包括四项内容:任务的代码入口地址,位于code空间,2字节为一个单位。   任务所使用堆栈栈底位置,位于idata空间,1字节为一个单位。   任务的定时节拍计数器,在每一次定时节拍中断后都自减一次。   任务状态寄存器,用其各个位来表示任务所处的状态。位于idata空间,以2字节为一单位。   (六)定时器t0中断服务程序的任务   (1)rtx51使用定时器t0作为定时节拍发生器,是任务切换、时间片轮转的依据。   (2)更新各个任务节拍数:将各任务节拍数寄存器减1,如果某任务超时(state[taskid].timer=0),并且该任务正在等待超时事件,则将该任务置为“ready”状态,使其返回任务队列。   (3)检查自由堆栈空间:若自由堆栈空间范围小于freestack(默认为20字节)时,可以调用宏stack_error,进行堆栈出错处理。   

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档