RTOS之uCOS-II源码下载及源码目录结构、常见的RTOS!
RTOS有众多种,用得最火的是FreeRTOS,因为它即使用于商业途径,也是开源免费的;其次是就是uCOS-II和uCOS-III。uCOS-II用于商业途径是需要付费的,但是对于学习研究却是免费的。它们同是嵌入式实时操作系统,很多东西都是共通的,熟悉其一,其它都非难题了。
常见的RTOS:
1:QNX的可靠性很好,协议栈、各种外设驱动稳定,只是运行所需资源有些多,需要MMU。如果需要高可靠性应用,QNX可能是最好的选择
2:RTLinux的实时性与其它RTOS相比有些差。但是,因为好多Linux资源可以利用,是RTLinux的优点。但是运行所需资源比QNX还多,也是需要MMU。可以选用开源的RTLinux或内容新的商用RTLinux。
3:uC/OS-II比较小巧,移植容易,网上资源很多,核心可以做得很小。但不是免费的,并且驱动需要自己编写,协议栈、图形驱动都要另外加。
4:Nucleus Plus比uC/OS-II庞大,另外提供了文件系统、协议栈、图形界面等许多东西。当然也是分开卖的,不是免费的东西。使用起来比较容易上手。
5:VRTX是一款比较早的RTOS,现在使用的人已经很少。运行还是比较可靠。配套的文件、协议栈等模块很少。
6:VxWorks是RTOS中的大牛,国内外用的人很多,开发工具功能强大,使用方便,但是价格昂贵。也有基于MMU的高可靠性的产品。所需资源比QNX小,比uC/OS、eCos多。对于一些私企或者好似小公司来说,可用性值得商榷。
7:eCos是开源的RTOS。针对不同的CPU已经做了许多现成的移植。代码尺寸比Nucleus的略大。如果不用USB host等,并且不想花费太多的金钱,应该是不错的选择
RTOS的学习,我选择的是uCOS-II。学习该操作系统的流程,主要分为源码阅读以及移植到STM32F10x单板上,并进行简单任务运行测试。过程中参考的资料有:
1.uCOS-II源码
2.正点原子MiniSTM32开发板配套资料
3.秉火ISO_V2开发板配套资料
4.《Cortex-M3权威指南.pdf》
5.《嵌入式实时操作系统μC\OS-Ⅱ原理及应用(第4版)》(任哲、房红征)
1. 源码下载(官网下载:https://www.micrium.com)
uCOS-II是Micrium公司开发的一款嵌入式实时操作系统,要下载源码自然去该公司的官网下载,下载的时候需要账号登录。我下载过多个版本,最后发现这个版本的uCOS-II源码比较符合我手上的硬件平台,即STM32F10x。
uCOS-II是一个操作系统,其实也可以理解成一个软件库,它可以移植到多种硬件平台,如M4内核的STM32,或者ARM9等等其他芯片。核心代码肯定是一致的,但是针对不同的处理器肯定要不同的实现部分。这里选择最为接近的版本,目的也在于少花费工夫。要知道,若要从0开始移植ucos-ii到目标硬件平台,需要极大的精力和软件水平。
2. 源码目录结构
下载下来后:
将其解压后目录如下:
EvalBoards:评估板相关文件,移植时提取部分
uC-CPU:这是和CPU紧密相关的文件,我们不需要使用
uC-LIB:Micrium公司提供的官方库,诸如字符串操作、内存操作等接口,可用可不用
uCOS-II:这是关键目录,我们下来着重分析的文件位于此目录下
uCOS-II的目录结构为:
这里并没有基于MDK平台的代码版本,然而IAR跟MDK最为相近,所以我们先主要看以此目录为例。在IAR目录下有如下4个文件:
(1) os_cpu.h:定义数据类型、处理器相关代码、声明函数原型
(2) oc_cpu_a.asm:与处理器相关的汇编代码,主要是与任务切换相关
(3) os_cpu_c.c:定义用户钩子函数,提供扩充软件功能的的接口
(4) os_dbg.c:内核调试相关数据和相关函数
在uCOS-II下的顶级目录还有Source目录,下面的文件为:
(1) os_core.c:内核数据结构管理,ucos-ii的核心,涵盖内核的初始化,任务切换,事件块管理、事件标志组管理等功能
(2) os_flag.c:事件标志组
(3) os_mbox.c:消息邮箱
(4) os_mem.c:内存管理
(5) os_q.c:队列
(6) os_sem.c:信号量
(7) os_task.c:任务管理
(8) os_time.c:时间管理,主要实现延时
(9) os_tmr.c:定时器管理,设置定时时间,超时则调用超时函数
(10) ucos_ii.h:内部函数参数设置
用下面一张图片可以概括,uCOS-II的源码目录结构
RTOS之uCOS-II源码下载及源码目录结构、常见的RTOS!相关推荐
- 在线教育专业建站工具 EduWind ,源码下载,源码分享网整理
在线教育专业建站工具 EduWind ,源码下载, Eduwind是由北京水木信步网络科技有限公司开发的网校服务,公司位于清华科技园.目前,EduWind的产品系列包括以下两大版本: EduWind网 ...
- 站长下载 - 源码下载,网站源码,站长工具 - 中国站长站
站长下载 - 源码下载,网站源码,站长工具 - 中国站长站 http://down.chinaz.com/
- 9款精致HTML5/jQuery日历时钟控件源码下载(源码请见百度云) 链接:http://pan.baidu.com/s/1geIXe75 密码:7m4a...
现在的网页应用越来越丰富,我们在网页中填写日期和时间已经再也不用手动输入了,而是使用各种各样的日期时间选择控件,大部分样式华丽的日期选择和日历控件都是基于jQuery和HTML5的,比如今天要分享的这 ...
- android 6.0.1原生系统源码下载以及源码编译----framework修改
1.源码下载前参数配置 1️⃣配置usb所需 sudo apt-get update sudo apt-get install git-core gnupg flex bison gperf buil ...
- vue 源码学习(一) 目录结构和构建过程简介
Flow vue框架使用了Flow作为类型检查,来保证项目的可读性和维护性.vue.js的主目录下有Flow的配置.flowconfig文件,还有flow目录,指定了各种自定义类型. 在学习源码前可以 ...
- vue 源码学习(一) 目录结构和构建过程简介 1
Flow vue框架使用了Flow作为类型检查,来保证项目的可读性和维护性.vue.js的主目录下有Flow的配置.flowconfig文件,还有flow目录,指定了各种自定义类型. 在学习源码前可以 ...
- vue-生成二维码+下载二维码
<div class="img" ref="code"><qrcode-vue :value="link" size=&q ...
- centos7 更新网络源,下载扩展源时出现“one of the configured repositories failed”提示,解决方案
平常都是用本地源,今天下某软件时需要用到网络源,启用网络源下载时突然报障,yum clean all 接着yum makecache 也出现"one of the configured re ...
- dedecms织梦仿麦站网模板源码下载站源码
介绍: 第一步:上传源码到宝塔解压,访问域名/install 进行安装 第二步:登录后台还原数据.之后点击"系统"-"系统基本参数设置",修改网站根目录地址,填 ...
最新文章
- 35个高级Python知识点总结
- 使用vue.js路由踩到的一个坑Unknown custom element
- 2012腾讯春季实习生面试经历(一)
- MySQL 5.1中IN查询不要用到NULL条件
- 手把手教你实现SVM算法(二)
- Hadoop运维记录系列(十四)
- android tv market,安卓市场TV版
- Tensorflow入门----占位符、常量和Session
- ai的预览模式切换_深耕基础办公领域,永中软件云端远程办公新模式助力企业复工复产...
- day46-CSS3新增功能
- 对I2C总线的时钟同步和总线仲裁的深入理解
- createbitmap 旋转90度_如何旋转的位图90度
- 操作系统内存管理-原理
- pytorch-----使用Module类来自定义模型
- 力扣-797. 所有可能的路径
- [数学建模]数学规划模型
- 阿里云2核4G云服务器租用CPU内存、公网带宽和系统盘配置
- 为何 987654321/123456789 的值是 8.0000000729
- ucenter单点登录
- kafka的生产者如何把消息发送到指定分区里
热门文章
- 【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )
- js、jquery、h5、css等简记
- 面试题16: 数值的整数次方
- 洛谷P1466 集合 Subset Sums
- 基于visual Studio2013解决面试题之1007鸡蛋和篮子
- centos 5.x 安装 zendOptimizer 5.x
- servlet中的几个路径有关的方法
- 用openssl跟Gmail的smtp对话(一)
- linux 系统 UDP 丢包问题分析思路
- 内存与存储之边界迎来变革