打印
[开发资料]

(分享)嵌入式操作系统三问:what?when?how?

[复制链接]
583|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在嵌入式领域中,嵌入式实时操作系统正得到越来越广泛的应用。采用嵌入式实时操作系统(RTOS)可以更合理、更有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。


本文我们对嵌入式实时操作系统进行经典三问:what?when?how?
因此,以下是嵌入式设计需要RTOS解决方案的时间和原因。但在此之前,RTOS到底是什么,尤其是与裸机解决方案相比?



一、什么是嵌入式实时操作系统?




嵌入式实时操作系统(RTOS)是一种操作系统,旨在管理嵌入式系统的硬件资源;它创建了多个软件执行线程和一个调度程序来管理这些线程。另一种说法是一个调度内核,它创建了一个多任务和确定性的运行时环境。



RTOS与无操作系统的“前后台”设计的最本质区别是任务调度器的设计,调度器可以为正在运行的任务分配精确且可重复的时间段的能力。



使用特权

评论回复
沙发
七毛钱|  楼主 | 2023-5-10 14:46 | 只看该作者

二、什么时候需要用RTOS?




当有更多中断源、更多功能和更多通信接口时,通常使用RTOS。简而言之,应用程序的复杂性在很大程度上决定了为MCU定制的RTO的使用。

刚开始学单片机,基本都是从裸机开始,经典的“项目”就是流水灯,也是你学习单片机的开始。但是随着学习的不断深入,裸机所暴露的问题就越来越多,这里我给大家总结下吧:1、并发性:程序并发工作效率低。在写裸机软件时,不可避免的在主程序中会有一个超级大的 while(1) 循环,这里面几乎包含整个项目的所有业务逻辑。
因为每个业务逻辑里面基本都会有 delay 这样的循环等待函数,这样导致了所有的业务逻辑几乎都是串行起来工作的。
这个时候 CPU 就会有很多时间都浪费在了延时函数里,一直在空转,导致软件的并发效率非常差。
2、模块化:高内聚,低耦合的原则。从软件工程的角度,我们在做软件开发时,都会强调高内聚、低耦合的原则。而裸机的模块化开发难度非常大,模块间的耦合较重,这也导致了无法在大型项目使用裸机来开发。
还是刚才 main 函数中大 while(1) 的例子,可以想象到那么多功能都紧紧的挤在一个函数里,不可拆分,模块化开发的困难重重。举一个非常贴切的例子,在一些使用看门狗的项目中,如果使用 delay 延时函数,那得注意点,万一延时过长,主函数来不及喂狗,看门狗就被触发了。
最后会产生这样一种感觉,一个简简单单的 delay 还得考虑喂狗功能,裸机开发时操的心太多了,自然无法应用在大型项目中。
3、生态:很多高级软件组件,必须依赖于操作系统来实现。比如,前些年一个基于 FreeModbus 的 Modbus 主机协议栈,因为要考虑各个平台适配问题,原本计划支持各种各样的操作系统,甚至是裸机平台。在各个操作系统上的适配都非常容易,但再去尝试着适配裸机时,发现难度重重,有一些函数在裸机上实现起来非常复杂,而且针对于不同的裸机环境,几乎没有通用性可言,太耗费精力了。所以我最终就放弃了裸机适配,一直到现在,在裸机上都没用这个 Modbus 主机协议栈。
另外,还有一些软件无法运行在裸机上,比如乐鑫,Realtek、 ti 和 联发科提供的 WIFi SOC SDK ,一些蓝牙 SOC 的 SDK 也都是只支持操作系统。所以,如果你不了解、不会使用操作系统,这些芯片也就玩不转了。
4、实时性:功能复杂的情况下,实时性无法保证。软件的实时性在一些领域会有一定的要求,软件的每个步骤必须在指定的时间被触发。
工控领域就是最常见到的场景,如果实时性无法保证,机械设备可能就无法按照指定时序要求去动作,以至于发生机械事故,甚至会威胁到人的生命。
回过来接着看裸机软件,如果软件变得庞大以后,可以想象到,主程序中那么大的一个 while(1) 循环,代码耦合严重,到处都是 delay 延时,要保证实时性几乎是不可能的。
5、可重用性:软件可重用性差,总是重复造轮子。可重用性与模块化程度有直接的关系。相信大家每个人在工作中都不想做很多重复性的工作,同样在写代码时,也想着尽可能少写一些功能相似的代码。
但在这个嵌入式碎片化极其严重的时代,各式各样的芯片,想要让同样的代码,在裸机环境下同时适配不同的硬件,难度非常大。这样也就导致了裸机的代码会过多的依赖于底层硬件,重复造轮子的过程也就不可避免。


使用特权

评论回复
板凳
七毛钱|  楼主 | 2023-5-10 14:46 | 只看该作者
三、选择RTOS需要考虑的因素




现在开源或不开源的RTOS非常多,当我们选择具体使用哪个RTOS时主要需要考虑哪些因素呢?
响应性:RTOS调度算法、中断延迟和上下文切换时间将显著定义系统的响应性和确定性。最重要的考虑是需要什么类型的响应——是否需要硬实时响应?这意味着有精确定义的最后期限,如果不满足,将导致系统失败。或者,非确定性的软实时响应是否合适?在这种情况下,无法保证每项任务何时完成。
可用系统资源:微内核使用最少的系统资源,并提供有限但必不可少的任务调度功能。微内核通常提供硬实时响应,广泛用于RAM/ROM容量有限的嵌入式微处理器,但也适用于较大的嵌入式处理器系统。
或者,可以使用Linux或WinCE等功能齐全的操作系统。它们提供了功能丰富的操作系统环境,通常随驱动程序、GUI和中间件组件一起提供。与微内核相比,功能齐全的操作系统通常响应速度较慢,需要更多的内存和处理能力,主要用于系统资源丰富的强大嵌入式处理器上。
开源或专业许可:有广泛使用的、免费的开源RTOS可用,在GPL或修改的GPL许可下分发。然而,这些许可证可能包含保留拷贝的限制,提供的保护很少。专业授权的RTOS产品取消了版权限制,提供完整的知识产权侵权赔偿和担保。此外,只有一家公司提供支持,并对产品质量负责。
质量:RTOS供应商在其组织内对质量的重视程度如何?质量不仅仅是编码标准。是否有正确的程序来保证未来产品和支持的质量?管理良好、重视质量的公司往往通过ISO 9001认证。
安全认证:预认证和可认证RTO可用于需要按照国际设计标准(如DO-178C和IEC 61508)认证的应用。这些RTO提供了关键的安全特性,以及认证机构要求的设计证据,以确认用于开发RTO的过程符合相关设计标准。
许可证:它不仅是您需要考虑的RTOS功能和特性,而且是对您的项目预算和公司的“投资回报”最有效的许可模式。
RTOS供应商:RTOS背后的公司与选择正确的RTOS本身一样重要。理想情况下,您希望与供应商建立关系,不仅支持您当前的产品,而且支持您未来的产品。要做到这一点,你需要选择一个具有良好声誉的积极主动的供应商,与领先的硅制造商合作,确保他们能够支持最新的处理器和工具。

信任、产品质量和支持质量是一切。

使用特权

评论回复
地板
AloneKaven| | 2023-5-10 22:25 | 只看该作者
RTOS对系统资源占用大吗?

使用特权

评论回复
5
tpgf| | 2023-6-7 15:41 | 只看该作者
当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。

使用特权

评论回复
6
kxsi| | 2023-6-7 15:54 | 只看该作者
我们常常说的嵌入式操作系统都是嵌入式实时操作系统

使用特权

评论回复
7
wiba| | 2023-6-7 16:17 | 只看该作者
RTOS在嵌入式系统设计中的主导地位已经确定,越来越多的工程师使用RTOS

使用特权

评论回复
8
drer| | 2023-6-7 16:40 | 只看该作者
新一代RTOS的领域:主要应用在消费电子、互联网络和手持设备等产品上

使用特权

评论回复
9
磨砂| | 2023-6-7 17:05 | 只看该作者
μC/OS-II是在μC-OS的基础上发展起来的,是美国嵌入式系统专家Jean J.Labrosse用C语言编写的一个结构小巧、抢占式的多任务实时内核。

使用特权

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

使用特权

评论回复
11
LOVEEVER| | 2023-10-20 12:38 | 只看该作者
RTOS与无操作系统的“前后台”设计的最本质区别是任务调度器的设计,调度器可以为正在运行的任务分配精确且可重复的时间段的能力。

使用特权

评论回复
12
小小蚂蚁举千斤| | 2023-10-23 14:03 | 只看该作者
嵌入式实时操作系统(RTOS)是一种操作系统,旨在管理嵌入式系统的硬件资源;对于具体执行过程还是有点不太清楚

使用特权

评论回复
13
星辰大海不退缩| | 2023-10-25 13:40 | 只看该作者
开源RTOS能够保证运行的稳定性吧

使用特权

评论回复
14
中国龙芯CDX| | 2023-11-14 09:38 | 只看该作者
首要任务是调度一切可利用的资源完成实时控制任务,其次才着眼于提高计算机系统的使用效率,重要特点是要满足对时间的限制和要求

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

342

主题

2335

帖子

4

粉丝