3.0-uC/OS-III简介(操作系统结构)
1.OS-III是一个第 3代的系统内核,支持现代的实时内核所期待的大部分功能。 例如资源管理, 同步, 任务间的通信等等。然而, uC/OS-III提供的特色功能在其它的实时内核中是找不到的, 比如说完备的运行时间测量性能, 直接地发送信号或者消息到任务,任务可以同时等待多个内核对象等。
2.在 uC/OS-II中很少使用的功能已经被删除或者被更新, 添加了更高效的功能和服务。 其中最有用的功能应该是时间片轮转法( round robin),这个是 uC/OS-II中不支持的,但是现在已经是uC/OS-III的一个功能了。
3.前后台系统
简单的小型系统设计一般是基于前后台的或者无限循环的系统。包含一个无限循环的模块实现需要的操作(后台)。中断处理程序实现异步事件(前台)。前台也叫做中断级,后台也叫作任务级。
4实时内核
实时内核是一个能管理MPU、 MCU、 DSP时间和资源的软件。
任务(也叫做线程)是一段简单的程序,运行时完全地占用 CPU。在单CPU中,任何时候只有1个任务被执行。
内核的责任是管理任务, 也做多任务处理。 多任务处理的作用是协调和切换多个任务依次享用CPU。多任务处理最大化CPU功能,同时会让我们觉得是多个CPU在运行。多任务处理有利于处理模块化的应用。
uC/OS-III 是一个抢占式内核,这意味着uC/OS-III总是执行最重要的就绪任务。
uC/OS-III内核也负责管理任务间的交流,系统的资源(内存和I/O)。
低档的单片机很有可能不支持像uC/OS-III那样的实时内核,因为它只有很少的RAM可供访问。 uC/OS-III内核需要1K到4K之间的RAM, 加上每个任务自己所需的堆栈空间。 至少有4K大小RAM的处理器才有可能成功移植uC/OS-III。
上图中,操作系统的内核包围硬件,同时,其外层是系统调用接口,这就是操作系统中除内核以外的其他组件。
5.实时系统(RTOS)
一个实时系统通常包括一个实时内核以及其他高级的服务,例如:文件管理, 堆栈协议, 图形用户接口等等。 大多数服务都是跟I/O有关的。
6.uC/OS-III
任务不受限制的抢占式实时内核,提供了现代实时内核所期望的所有功能,包括资源管理、同步、内部任务交流。
uC/OS-III也提供了很多其他实核没有的功能:运行时测量运行性能,直接发送信号或消息给任务,任d能o时等多个信号量和消息队列。
3.0-uC/OS-III简介(操作系统结构)的更多相关文章
- uc/os iii移植到STM32F4---IAR开发环境
也许是先入为主的原因,时钟用不惯Keil环境,大多数的教程都是拿keil写的,尝试将官方的uc/os iii 移植到IAR环境. 1.首先尝试从官网上下载的官方移植的代码,编译通过,但是执行会报堆栈溢 ...
- uC/OS - III 移植 IAR平台
关于移植uC/OS-III 网上已经有很多教程了此处只是做个记录 首先下载源码然后解压得到下面的文件: 然后在模版工程里新建各种文件夹: 最后全部都添加进工程: OK了,编译一下,惊呆了,竟然 0错误 ...
- uC/OS II原理分析及源码阅读(一)
uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的.可裁减的.抢占式.实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和 ...
- uc/os任务创建
问题描述: uc/os中任务创建 问题解决: 创建一个任务,任务从无到有.任务创建函数分两种, 一种是基本的创建函数OSTaskCreate, 另一种是扩展的任务创建函数OSTaskCrea ...
- 【原创】uC/OS 中LES BX,DWORD PTR DS:_OSTCBCur的作用及原理
LES BX, DWORD PTR DS:_OSTCBCur ;OSTCBCur->OSTCBStkPtr = SS:SP!!! ], SS ;将当前SS(栈的基地址)寄存器值存放至当前任务控制 ...
- 【原创】uC/OS II 任务切换原理
今天学习了uC/OS II的任务切换,知道要实现任务的切换,要将原先任务的寄存器压入任务堆栈,再将新任务中任务堆栈的寄存器内容弹出到CPU的寄存器,其中的CS.IP寄存器没有出栈和入栈指令,所以只能引 ...
- 基于μC/OS—III的CC1120驱动程序设计
基于μC/OS—III的CC1120驱动程序设计 时间:2014-01-21 来源:电子设计工程 作者:张绍游,张贻雄,石江宏 关键字:CC1120 嵌入式操作系统 STM32F103ZE ...
- 【小梅哥SOPC学习笔记】NIOS II处理器运行UC/OS II
SOPC开发流程之NIOS II 处理器运行 UC/OS II 这里以在芯航线FPGA学习套件的核心板上搭建 NIOS II 软核并运行 UCOS II操作系统为例介绍SOPC的开发流程. 第一步:建 ...
- Python::OS 模块 -- 简介
OS 模块简介 OS模块是Python标准库中的一个用于访问操作系统功能的模块,OS模块提供了一种可移植的方法使用操作系统的功能.使用OS模块中提供的接口,可以实现跨平台访问.但是在OS模块中的接口并 ...
- uC/OS 的任务调度解析 (转)
uC/OS 的任务调度解析 1.任务调度器启动之后(初始化,主要是TCB的初始化),就可以创建任务,开始任务调度了,实际上第一个任务准确的说不是进行任务切换,而是进行启动当前最高优先级任务.uC/OS ...
随机推荐
- 史上最详细的JavaScript事件使用指南
事件流 事件流描述的是从页面中接收事件的顺序,IE和Netscape提出来差不多完全相反的事件流的概念,IE事件流是事件冒泡流,Netscape事件流是事件捕获流. 事件冒泡 IE的事件流叫做事件冒泡 ...
- 30分钟入门Java8之lambda表达式
前言 Google在今年发布Android N开发者预览版,一并宣布开始支持Java 8.我们终于能在Android开发中使用到Java8的一些语言特性了.目前支持: 默认方法 lambda表达式 多 ...
- OpenGL 获取当前屏幕坐标的三维坐标(gluUnProject使用例子 VS+glut)
本例子参考于网络,并进行了一些修改,使用glut+vs2008来实现. 在鼠标点击处重新画一个旋转的红色立方体! 参考代码如下: C++ Code 123456789101112131415161 ...
- Spark排序之SortByKey
sortByKey函数作用于Key-Value形式的RDD,并对Key进行排序. package com.test.spark import org.apache.spark.{SparkConf, ...
- js中的构造函数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【laravel5.6】 laravel中间件内生成参数并且传递到控制器的2种方法
中间件方法: /** * 自定义中间件: * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return ...
- ASP.NET MVC文章系列
Summary of article list for ASP.NET MVC [Basic] Pro ASP.NET MVC chapter 2 http://www.cnblogs.com/yan ...
- 180623、Git新建远程分支和删除
Git新建远程分支和删除 现在我在master分支上,工作目标是干净的,也没有需要commit的: $ git branch * master release $ git status On bran ...
- Flask web开发之路十一
首先写一下cookie和session的概念,然后是Flask中session的工作机制以及操作session ### cookie: 1. `cookie`出现的原因:在网站中,http请求是无状态 ...
- vins-mono代码分析
vins-mono的关键帧选择策略 1 与前一帧的平均视差.如果跟踪特征的平均视差超过某个阈值,我们会将此图像视为关键帧. 2 另一个是跟踪质量.如果跟踪特征的数量低于一个阈值,我们把这一帧看做一个新 ...