资料介绍
看了很久的操作系统原理,ucos源码也看了大半,但是感觉总是懵懵懂懂,用句流行的网络用语就是始终上不了车,后来在网上被人推荐了一篇文章《建立一个属于自己的操作系统》,这篇文章真的非常好,也附有源码,但不知道是不是我找的文章有差错还是啥,我根据文章提供的源码贴代码,根本无法编译,然后开始读代码修改代码最后成功编译但是在硬件平台运行根本不行。后来又断断续续看ucos源码,反正各种什么数据结构啊的通信什么的让人头痛,后来大学的单片机原理完课,学校安排课设,我选了时钟定时器(有点像闹钟),这种开环的裸机开发没什么难度,闲着也是闲着于是从新捡起几个月前没有完成的os,这次重新开坑,代码完全自己敲,从基本功能开始一步步实现os,像《建立一个属于自己的操作系统》介绍的一样。忙活了两天也终于成功了,并且成功地将时钟定时器移植到自己的os上跑了,说实话在os跑比裸机的前后台的效果好很多(os上跑按按键与现实感觉是同步进行的,前后台的效果在按按键的时候数码显示是会黑屏的),但是51的硬件资源太少,只有128个字节的ram,所以此次设计没有统一的任务通信接口,只能实现基本的优先级,延时服务或者轮询服务。在自己成功地建立一个属于自己os后在看ucos的源码更加顺畅,以前一直搞不懂的任务通信也能明白
正文
1,任务人口地址:在os中,是在不直接用程序名(参数)这种方式调用任务。那怎样呢?这部分《建立一个属于自己的操作系统》讲的非常详细,大家自行搜阅。
2,任务调度:学过单片机原理的都知道,cpu中有sp与pc两个特殊的寄存器,sp是堆栈指针,在51中它可以指向数据区的任意单元,PC是程序计数器,它始终保存下一条程序指令的地址。51C语言是可以直接操控sp的,但是pc不行,所以要想办法间接操控pc,对的,就是通过压栈和弹栈实现,在程序执行发生断点时(调动子程序或中断),cpu会自动将pc的值进行压栈,返回断点时会自动将栈顶的值弹回pc,这就是关键,如果在弹回前,我们修改sp,不就可以间接操控pc了吗!这样就可以将cpu执行其他任务了;
3,人工堆栈:操作系统原理中有一点非常重要,就是上下文切换,所以每个任务必须有属于自己的堆栈,称为人工堆栈。人工堆栈的建立非常讲究,不能短也不能太长,短了会是溢出会可能修改其他任务的人工堆栈,产生调度紊乱。太长会浪费空间,尤其是像51这种硬件资源本就少的单片机。堆栈的空间的预留是通过数组来划分的。在建立任务时,要对堆栈初始化(这也很关键),将任务入口地址压到最底部(不同的单片机情况不同,这里以51为例,后面的也是),然后sp指向正确的堆栈位置(不同的单片机情况不同,要保存的寄存器个数不同),个人在设计中发现,为了不让sp越界,最好将堆栈最底部单元预留出来,避免浪费可以用来保存任务信息,比如堆栈使用情况。
- 使用单片机制作一个简单的应用系统详细资料说明 10次下载
- 51单片机的汇编指令详细资料说明
- 51单片机例函数的详细资料说明
- 使用单片机设计一个LED点阵的详细资料和程序免费下载
- 80C51单片机的中断系统和系统结构的详细资料说明
- 使用SG90舵机和51单片机PWM制作一个手机屏幕触控的详细资料说明
- 使用51单片机设计六足仿生机器人的详细资料说明
- 使用51单片机设计循迹智能小车的详细资料说明
- 51单片机IO口的三个基本操作详细资料说明
- 51单片机中IIC协议的详细资料说明
- 使用51单片机设计一个简易加法计算器的C语言程序免费下载
- 使用51单片机点亮第一个发光二极管的详细资料说明
- 使用51单片机设计温度采集系统的详细资料免费下载
- 51单片机的中断系统详细资料说明
- C51单片机上移植UCOS操作系统的详细资料和程序免费下载 28次下载
- FreeRTOS:一个迷你的实时操作系统内核 828次阅读
- 51单片机指令系统的详细资料简介 5159次阅读
- 51单片机的最小系统应用说明 7719次阅读
- 使用AT89S51单片机制作红外遥控器的资料和源代码详细说明 5862次阅读
- 使用单片机制作一个手动计数器的详细资料说明 3585次阅读
- 51单片机操作系统开发中有什么技巧会碰到什么问题 2898次阅读
- PIC单片机以及51和AVR单片机的IO口操作方法解析 2951次阅读
- 如何利用单片机设计一个99码表 2032次阅读
- PIC单片机以及51单片机和AVR单片机的IO口操作方法介绍 1931次阅读
- 开发一个51单片机最小系统的资料说明 4566次阅读
- 51单片机实时操作系统的基本结构与模式 5400次阅读
- 如何设计一个小型嵌入式操作系统 9350次阅读
- 基于51单片机和AD574的简易电子秤的设计 1.7w次阅读
- 51单片机学习感悟与51单片机上拉电阻心得 4229次阅读
- 《电子发烧友网51单片机设计方案TOP10》 1.4w次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 651单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 751单片机大棚环境控制器仿真程序
- 1.10 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多