豆搜网 文档下载 文档下载导航
设为首页 | 加入收藏
搜索 请输入内容:  
 导航当前位置: 文档下载 > 所有分类 > 工程科技 > 电子/电路 > 51单片机最简单的多任务操作系统
侵权投诉

51单片机最简单的多任务操作系统

单片机 系统

/*

51单片机最简单的多任务操作系统

其实只有个任务调度切换,把说它是OS有点牵强,但它对于一些简单的开发应用来说,简单也许就是最好的.尽情的扩展它吧.别忘了把你的成果分享给大家.

这是一个最简单的OS,一切以运行效率为重,经测试,切换一次任务仅个机器周期,也就是在标准(工作于M晶振)上uS.

而为速度作出的牺牲是,为了给每个任务都分配一个私有堆栈,而占用了较多的内存.作为补偿,多任务更容易安排程序逻辑,从而可以节省一些用于控制的变量.

任务槽越多,占用内存越多,但任务也越好安排,以实际需求合理安排任务数目.一般来说,4个已足够.况且可以拿一个槽出来作为活动槽,换入换入一些临时任务.

task_load(函数名,任务槽号)

装载任务

os_start(任务槽号)

启动任务表.参数必须指向一个装载了的任务,否则系统会崩溃.

task_switch()

切换到其它任务

.编写任务函数注意事项:

KEIL C编译器是假定用户使用单任务环境,所以在变量的使用上都未对多任务进行处理,编写任务时应注意变量覆盖和代码重入问题.

1.覆盖:编译器为了节省内存,会给两个没用调用关系的函数分配同一内存地址作为变量空间.这在单任务下是很合理的,但对于多任务来说,两个进程会互相干扰对方.

解决的方法是:凡作用域内会跨越task_switch()的变量,都使用static前辍,保证其地址空间分配时的唯一性.

2.重入:重入并不是多任务下独有的问题,在单任务时,函数递归同样会导致重入,即,一个函数的不同实例(或者叫作"复本")之间的变量覆盖问题.

解决的方法是:使用reentrant函数后辍(例如:void function1() reentrant{...}).当然,根本的办法还是避免重入,因为重入会带来巨大的目标代码量,并极大降低运行效率.

3.额外提醒一句,在本例中,任务函数必须为一个死循环.退出函数会导致系统崩溃.

.任务函数如果是用汇编写成或内嵌汇编,切换任务时应该注意什么问题?

由于KEIL C编译器在处理函数调用时的约定规则为"子函数有可能修改任务寄存器",因此编译器在调用前已释放所有寄存器,子函数无需考虑保护任何寄存器.

这对于写惯汇编的人来说有点不习惯: 汇编习惯于在子程序中保护寄存器.

请注意一条原则:凡是需要跨越task_switch()的寄存器,全部需要保护(例如入栈).根本解决办法还是,不要让寄存器跨越任务切换函数task_switch()

事实上这里要补充一下,正如前所说,由于编译器存在变量地址覆盖优化,因此凡是非静态变量都不得跨越task_switch().

任务函数的书写:

void 函数名(void){//任务函数必须定义为无参数型

while(1){//任务函数不得返回,必须为死循环

第1页

你可能喜欢

  • 51单片机多任务系统
  • 51单片机介绍
  • 单片机作业
  • 51单片机设计
  • 例说51单片机
  • 单片机介绍
  • 全自动单片机

热门文档

相关文档

  • 51单片机多任务操作系统的原理与实现

    51 单片机多任务操作系统的原理与实现 -- 一个超轻量级的操作系统 前言 想了...最简单的办法是将所有旅客需要走的起点与终点串成一条线,车在这条线上开, ...

  • 51系列单片机的多任务操作系统

    51系列单片机的多任务操作系统_计算机软件及应用_IT/计算机_专业资料。21天学...简单的单任务C51程序 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15...

  • 【论文】基于MCS51单片机的多任务操作系统内核设计

    基于MCS51单片机的多任务操作系统内核设计_信息与通信_工程科技_专业资料。星 INFOFIMAT10N TECHNlQUE&CONTROL 基于 MCS5 1单片机的多任务 操作 ...

  • 实时多任务操作系统在MCS_51单片机中的应用

    实时多任务操作系统在MCS_51单片机中的应用_信息与通信_工程科技_专业资料。... 51单片机最简单的多任务... 4页 1下载券 51系列单片机的多任务操... 15...

  • 基于51单片机多任务嵌入式操作系统模型

    基于51单片机多任务嵌入式操作系统模型_工程科技_专业资料。很不错的一个操作系统,可以用来学习一下这个操作系统很给力 一种裸奔多任务模型 一个网友的总结:state...

  • 第二十讲:51系列单片机的多任务操作系统

    51单片机最简单的多任务操... 4页 2财富值 第十三章 RTX51实时多任务...... 系列单片机的多任务操作系统 第二十讲:51系列单片机的多任务操作系统 北京源智...

  • 51单片机多任务编程设计及应用

    综上所述, 在目前 51 单片机多任务编程工作中, 大多采用 了基于实时操作系统 ... 然后介绍几种 典型任务的设计方法, 最后通过一个简单的实例来说明该方法 的...

  • 51 DIY超轻量级多任务操作系统

    给51 DIY超轻量级多任务操... 77页 免费 51最简操作系统演变 11页 免费 51单片机的实时操作系统的... 86页 1财富值 51简单操作系统OS 4页 免费...

  • 基于51单片机的多任务机制及应用

    基于51单片机的多任务机制及应用_信息与通信_工程...而很多时候只需要实现简单的多任务操作就可以满足实际...图 1 智能安防系统结构示意图 如果采用单任务机制,...

  • 51 DIY超轻量级多任务操作系统

    点击数:26754 论坛首页 -> 51单片机 -> 给51 DIY超轻量级多任务操作系统 (...(0); } 这样一个简单的多任务系统虽然不能称得上真正的操作系统,但只要你了解...

站点地图 | 文档上传 | 侵权投诉 | 手机版
新浪认证  诚信网站  绿色网站  可信网站   非经营性网站备案
本站所有资源均来自互联网,本站只负责收集和整理,均不承担任何法律责任,如有侵权等其它行为请联系我们.
文档下载 Copyright 2013 doc.docsou.com All Rights Reserved.  闽ICP备15022310号-9  闽公网安备 35021102001881号  email
返回顶部