开启辅助访问 切换到窄版

打印 上一主题 下一主题

μC/OS-III 学习笔记(1)

[复制链接]
作者:若七年 
版块:
嵌入式操作系统 其他嵌入式相关 发布时间:2018-7-21 02:29:32
8620
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式

最近花了几天时间研究RTOS,直接用
μC/OS-III
上手,参照例程移植
μC/OS-III
源码写入103ZET6的开发板,再用原子的例程将
μC/OS-III
所有功能都过了一遍,现在回过头来结合实验体会,程序源码和参考书巩固学习。

首先说说为什么用
μC/OS-III,而不是直接上手Linux。因为Linux对初学者不是很友好,没有一定的基础,学习难度还是不小的,打击学习的积极性和信心。

所以,可以先学习
μC/OS-III来试试手,
μC/OS-III用几千行代码就可以实现操作系统,还可以
将操作系统的一些抽象概念具体化。最主要还是因为网上的有关
μC/OS-III
资料非常多。



参考资料如下:

1、嵌入式实时操作系统μC/OS-III

北京航空航天大学出版社 Jean J.Labrosse


2、嵌入式实时操作系统μC/OS-II

北京航天航天大学出版社 任哲

     3、 STM32F1 UCOS开发手册_V2.0

正点原子



源码实验例程:

正点原子μC/OS-III 实验



正文:
什么是操作系统?
答:



从层次来看,操作系统位于计算机硬件之上,应用软件之下。所以也把它叫做应用软件的运行平台。是一种为应用程序提供服务的系统软件。

从程序员的角度来看,它就是一大堆函数(API和系统函数),可以调用(普通调用或系统调用)它们来对系统资源进行操作和管理。



什么是实时操作系统?

答:
对于一个实时操作系统,就是要求它能够在现有的硬件条件下,在接受到输入后尽可能快地计算出输出结果。并应使应用程序设计者在应用程序设计时,就能预先准确地确定完成任务所需要的最长时间。
  为满足上述要求,实时操作系统满足以下三个条件。


  • 实时操作系统必须是多任务系统
  • 任务的切换时间应与系统中的任务数无关
  • 中断延迟的时间可预知并尽可能的
  
什么是嵌入式实时操作系统?
答:
用于嵌入式系统,对任务资源和多个任务进行管理,且具有高可靠性良好可裁剪性等优良性能,并为应用程序提供运行平台和实时服务的微型系统软件叫做嵌入式实时操作系统。



前后台系统:包含一个无限循环的模块实现需要的操作(后台)。中断处理程序实现异步事件(前台)。前台也叫做中断级,后台也叫作任务级。

实时内核:用于管理微处理器,微控制器或数字信号处理器的时间及硬件资源的软件代码。(原来看书的时候就奇怪什么叫做内核,原来如此啊)


设计实时系统时,可把系统功能划分成成多个任务,每个任务仅富足实现某一功能。每个任务(或者叫做线程)都是一段简单的代码,通常是一个死循环。CPU在任意时刻只能执行一个任务,且每个任务都认为自己在独自使用整个CPU。

实时内核负责管理这些任务,决定运行哪个任务,何时停止运行当前任务并切换到其他任务,这就叫做多任务管理。CPU在多个顺序执行的任务代码间切换。多任务管理就造成了多CPU的假象,实现了对CPU资源的最大化使用。

由于是一个可剥夺型的内核,它总是运行当前就绪任务中优先级最高的那个,如图所示。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表