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 ...
随机推荐
- Why you should use async tasks in .NET 4.5 and Entity Framework 6
Improve response times and handle more users with parallel processing Building a web application usi ...
- [Laravel] 01 - Love beautiful code? We do too.
前言 一.良心资料 英文 Laravel 框架:https://laravel.com/ 教程:https://laracasts.com/series/ laravel-from-scratch-2 ...
- Collections.synchronizedMap()与ConcurrentHashMap的区别
前面文章提到Collections.synchronizedMap()与ConcurrentHashM两者都提供了线程同步的功能.那两者的区别在哪呢?我们们先来看到代码例子. 下面代码实现一个线 ...
- swagger netframework webapi
参考:https://blog.csdn.net/wjk343977868/article/details/47086137
- Window应急响应(四):挖矿病毒
0x00 前言 随着虚拟货币的疯狂炒作,挖矿病毒已经成为不法分子利用最为频繁的攻击方式之一.病毒传播者可以利用个人电脑或服务器进行挖矿,具体现象为电脑CPU占用率高,C盘可使用空间骤降,电脑温度升 ...
- C# Timer 定时器
Timer简单介绍 构造函数 通过ILSpy反编译可以看到Timer的内部代码. Timer 的默认构造函数里赋了初值,所以当我们初始化Timer的时候,已经有了默认值. Timer 的带参数的构造函 ...
- C#模拟登录后请求查询
需求是这样子的,想开发一个外挂程序,能够抓取别的系统的数据,从而实现数据验证. 比如这样一个界面: 使用Chrome浏览器分析http请求和响应过程以及页面的html代码,发现这是一个ajax请求,于 ...
- day_4_24 py
''' 函数的嵌套调用应用 ''' # def print_line(): # print("="*50) # def print_5_line(): # i = 0 # whil ...
- TP5和TP3.2的区别
1.控制器输出 return $this->fetch("index/hello"); $this->display 单字母函数去掉了 如:M() D() U() S( ...
- DB2常用函数详解(一):字符串函数
VALUE函数 语法:VALUE(EXPRESSION1,EXPRESSION2) VALUE函数是用返回一个非空的值,当其第一个参数非空,直接返回该参数的值,如果第一个参数为空,则返回第一个参数的值 ...