freertos与linux区别,μClinux、μC/OS-II、eCos、FreeRTOS和djyos操作系统的特点及不足-嵌入式系统-与非网...

2023-05-16

基于 STM 平台且满足实时控制要求操作系统,有以下 5 种可供移植选择。分别为μClinux、μC/OS-II、eCos、FreeRTOS 和都江堰操作系统(djyos)。

下面分别介绍这五种嵌入式操作系统的特点及不足。

1a1ed3d05317e831eec104252f9dfd3e.png

1、μClinux

μClinux 是一种优秀的嵌入式 Linux 版本,其全称为 micro-control Linux,从字面意思看是指微控制 Linux。同标准的 Linux 相比,μClinux 的内核非常小,但是它仍然继承了 Linux 操作系统的主要特性,包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、标准丰富的 API,以及 TCP/IP 网络协议等。因为没有 MMU 内存管理单元,所以其多任务的实现需要一定技巧。

μClinux 在结构上继承了标准 Linux 的多任务实现方式,分为实时进程和普通进程,分别采用先来先服务和时间片轮转调度,仅针对中低档嵌入式 CPU 特点进行改良,且不支持内核抢占,实时性一般。

综上可知,μClinux 最大特点在于针对无 MMU 处理器设计,这对于没有 MMU 功能的 stm32f103 来说是合适的,但移植此系统需要至少 512KB 的 RAM 空间,1MB 的 ROM/FLASH 空间,而 stmf103 拥有 256K 的 FLASH,需要外接存储器,这就增加了硬件设计的成本。

μClinux 结构复杂,移植相对困难,内核也较大,其实时性也差一些,若开发的嵌入式产品注重文件系统和与网络应用则μClinux 是一个不错的选择。

2、μC/OS-II

μC/OS-II 是在μC/OS 的基础上发展起来的,是用 C 语言编写的一个结构小巧、抢占式的多任务实时内核。μC/OS-II 能管理 64 个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和扩展性强等特点。

在文件系统的支持方面,由于μC/OS-II 是面向中小型嵌入式系统的,即使包含全部功能,编译后内核也不到 10 KB,所以系统本身并没有提供对文件系统的支持。但是μC/OS-II 具有良好的扩展性能,如果需要也可自行加入文件系统的内容。

在对硬件的支持上,μC/OS-II 能够支持当前流行的大部分 CPU,μC/OS-II 由于本身内核就很小,经过裁剪后的代码最小可以为 2KB,所需的最小数据 RAM 空间为 4 KB,μC/OS-II 的移植相对比较简单,只需要修改与处理器相关的代码就可以。

综上可知,μC/OS-II 是一个结构简单、功能完备和实时性很强的嵌入式操作系统内核,针对于没有 MMU 功能的 CPU,它是非常合适的。它需要很少的内核代码空间和数据存储空间,拥有良好的实时性,良好的可扩展性能,并且是开源的,网上拥有很多的资料和实例,所以很适合向 stm32f103 这款 CPU 上移植。

3、eCos

eCos(embedded Configurable operating system),即嵌入式可配置操作系统。

它是一个源代码开放的可配置、可移植、面向深度嵌入式应用的实时操作系统。

最大特点是配置灵活,采用模块化设计,核心部分由小同的组件构成,包括内核、C 语言库和底层运行包等。

每个组件可提供大量的配置选项(实时内核也可作为可选配置),使用 eCos 提供的配置工具可以很方便地配置,并通过不同的配置使得 eCos 能够满足不同的嵌入式应用要求。

eCos 操作系统的可配置性非常强大,用户可以自己加入所需的文件系统。eCos 操作系统同样支持当前流行的大部分嵌入式 CPU,eCos 操作系统可以在 16 位、32 位和 64 位等不同体系结构之间移植。

eCos 由于本身内核就很小,经过裁剪后的代码最小可以为 10 KB,所需的最小数据 RAM 空间为 10 KB。

在系统移植方面 eCos 操作系统的可移植性很好,要比μC/OS-II 和μClinux 容易。

综上所述,eCos 最大特点是配置灵活,并且支持无 MMU 的 CPU 的移植,开源且具有很好的移植性,也比较合适于移植到 stm32 平台的 CPU 上。但 eCOS 的应用还不是太广泛,还没有像μC/OS-II 那样普遍,并且资料也没有μC/OS-II 多。eCos 适合用于一些商业级或工业级对成本敏感的嵌入式系统,例如消费电子领域中的一些应用。

4、FreeRTOS

由于 RTOS 需占用一定的系统资源(尤其是 RAM 资源),只有μC/OS-II、embOS、salvo、FreeRTOS 等少数实时操作系统能在小 RAM 单片机上运行。

相对于 C/OS-II、 embOS 等商业操作系统,FreeRTOS 操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行,其最新版本为 6.0 版。

作为一个轻量级的操作系统,FreeRTOS 提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。

FreeRTOS 内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU 总是让处于就绪态的、优先级最高的任务先运行。

FreeRT0S 内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享 CPU 的使用时间。

FreeRTOS 的不足:

相对于常见的μC/OS—II 操作系统,FreeRTOS 操作系统既有优点也存在不足。

其不足之处, 一方面体现在系统的服务功能上,如 FreeRTOS 只提供了消息队列和信号量的实现,无法以后进先出的顺序向消息队列发送消息;另一方 面,FreeRTOS 只是一个操作系统内核,需外扩第三方的 GUI(图形用户界面)、TCP/IP 协议栈、FS(文件系统)等才能实现一个较复杂的系统, 不像μC/OS-II 可以和μC/GUI、μC/FS、μC/TCP-IP 等无缝结合。

5、都江堰操作系统(djyos)

都江堰操作系统,简称 djyos,得名于一个伟大的水利工程:都江堰。

与传统操作系统不同,djyos 不是以线程而是以事件为调度核心,这种调度算法使程序员摆脱模拟计算机执行过程编写程序的思维方式,而是按人类认知世界的方式编写应用程序,就如同在嵌入式编程中引入了 VC 似的。

djyos 的调度算法使程序员可以摆脱线程和进程的束缚,djyos 没有有关线程的 api,一个完全不懂线程知识的程序员也可以顺利地在 djyos 下编写应用程序。

djyos 操作系统是以事件为核心进行调度的,这种调度策略使程序员可以按人类认知事物的习惯而不是计算机的习惯来编程。

由上所述,对于 stm32f103 来说,移植μC/OS-II、eCos、FreeRTOS、都江堰操作系统是合适的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

freertos与linux区别,μClinux、μC/OS-II、eCos、FreeRTOS和djyos操作系统的特点及不足-嵌入式系统-与非网... 的相关文章

随机推荐

  • python238(全局变量03—函数内部不允许修改全局变量的值)

    函数不能直接修改全局变量的引用 在函数内部 xff0c 可以通过全局变量的引用获取对应的数据但是 xff0c 不允许直接修改全局变量的引用 使用赋值语句修改全局变量的值
  • python007(游戏窗口04—创建游戏窗口和游戏循环)

    创建游戏主窗口 pygame专门提供了一个模块pygame display用于创建 管理游戏窗口 方法说明pygame display set mode 初始化游戏显示窗口pygame display update 刷新屏幕内容显示 xff
  • imu内参标定

    imu内参标定 前言1 imu噪声模型介绍2 imu data和 imu data raw的区别3 px4飞控imu标定 以及遇到的问题kalibr allan标定imu内参 4 使用mintar修改的imu utils进行zed2相机im
  • imu噪声的建模理解

    imu噪声的建模理解 前言一 IMU噪声模型简述二 两篇文档中关于imu噪声模型的描述三 Allan standard deviation AD 读取imu内参 前言 参考An introduction to inertial naviga
  • Airsim环境下的px4硬件在环仿真

    文章目录 前言1 Airsim和硬件在环介绍2 硬件在环测试的准备工作 xff08 硬件和软件 xff09 2 1 usb ttl转接线的制作 xff1a 2 2 px4的ttl端口波特率设置 3 硬件在环测试过程中的问题4 AirSim
  • 使用Kalibr标定相机和IMU(ZED+px4)外参

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 使用Kalibr标定相机和IMU xff08 ZED 43 px4 xff09 外参 前言一 Kalibr介绍二 CAM IMU外参标定1
  • php curl digest,php curl with digest返回两个响应

    如果对标头使用 I选项 则看起来curl具有相同的行为 xff1a curl I digest u root somepassword http localhost digest test 收益 xff1a HTTP 1 1 401 Aut
  • SET PASSWORD FOR ‘root‘@localhost=PASSWORD(‘XXXX‘);报错

    原因 xff1a 数据库版本较高 老版本 SET PASSWORD FOR root 64 localhost 61 PASSWORD XXXXX 新版本 SET PASSWORD FOR root 64 localhost 61 XXXX
  • ROS学习笔记之小乌龟跟随

    ROS学习笔记之小乌龟跟随 说明 xff1a 整个案例是跟着赵虚左老师的视频和文档资料学习的 xff0c 特此感谢赵虚左老师和Autolabor官方 文档地址 视频地址 学习案例之前的预备知识 xff1a TF坐标变换 大体实现流程 xff
  • MPC,PID,LQR,DDP算法

    算法原理 xff1a
  • 对‘image_transport::ImageTransport::~Image Transport()’未定义的引用

    这是因为cmakelist文件没配置好 xff0c 一般的cmakelist文件配置如下 xff1a cmake minimum required VERSION 2 8 3 project first test pkg Compile a
  • 【VIO笔记(学习VINS的必备基础)】第六讲 视觉前端

    文章目录 前端工作的综述特征点提取 匹配和光流为什么需要角点角点的提取光流的计算光流的总结 关键帧与三角化关键帧三角化三角化程序实现 系列教程来自某学院 xff0c 侵权删除 学习完这一系列课程再去看VINS才能做到不吃力 xff0c 不然
  • windows开机自启动frp教程

    https wp gxnas com 12153 html
  • ubuntu20.08下获取realsense内参

    ubuntu20 08下使用realsense过程记录 介绍一 安装SDK1 注册公钥2 将服务器添加到存储库列表中3 安装库4 安装开发者和调试包5 测试SDK 二 下载realsense2 camera包1 下载包2 测试包3 激活相关
  • 深度视场角(Depth Field of View)

    深度视场角 Depth Field of View Realsense相机深度图的建立依赖双目立体成像原理 xff0c 其有效视场是左 右成像器视场的重叠部分 xff0c 如下图所示 顺带一提 xff0c 这张图不能用于计算双目相机深度成像
  • ROS: Publisher and Subscriber

    通过上一节编写ROS的第一个程序hello world xff0c 我们对ROS的整个编程开发过程有了基本的了解 xff0c 现在我们就来编写真正意义上的使用ROS进行节点间通信的程序 由于之前已经建好了catkin ws这样一个工作空间
  • phpStorm2018安装教程

    1 鼠标右击 PhpStorm 2018 2 3 压缩包选择 解压到PhpStorm 2018 2 3 2 双击打开解压后的 PhpStorm 2018 2 3 文件夹 3 鼠标右击 PhpStorm 2018 2 3 exe 选择 以管理
  • 学习Java第一个星期感受和收获

    最近在学习java xff0c 学了有一个星期 xff0c 说一说这个星期的收获和总结吧 xff01 首先我也是从一个小白做起 xff0c 这个星期学习了很多 xff0c 很多java基础知识 xff0c 我印象比较深刻的是基本数据类型和引
  • MySql知识体系总结(2021版)

    一 MySQL三层逻辑架构 MySQL的存储引擎架构将查询处理与数据的存储 提取相分离 下面是MySQL的逻辑架构图 xff1a 1 第一层负责连接管理 授权认证 安全等等 每个客户端的连接都对应着服务器上的一个线程 服务器上维护了一个线程
  • freertos与linux区别,μClinux、μC/OS-II、eCos、FreeRTOS和djyos操作系统的特点及不足-嵌入式系统-与非网...

    基于 STM 平台且满足实时控制要求操作系统 xff0c 有以下 5 种可供移植选择 分别为 Clinux C xff0f OS II eCos FreeRTOS 和都江堰操作系统 djyos 下面分别介绍这五种嵌入式操作系统的特点及不足