0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

何时需要使用RTOS

麦克泰技术 来源:麦克泰技术 2025-01-21 14:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式开发人员在开始新项目时面临越来越多的挑战。在万物互联时代到来之前,嵌入式系统几乎没有或没有安全对策。如今,开发人员必须专注于增强嵌入式安全性,以防止在线对手和侧通道攻击,即使它们有致力于延长电池寿命并配置响应迅速且直观的用户界面。

多年来,对程序结构的态度也发生了变化,从简单的循环到使用状态机,对于复杂的系统,需要使用嵌入式实时操作系统RTOS)。多核设备的广泛使用也影响了开发人员构建应用程序的方式。

使用RTOS可以在嵌入式系统中带来许多好处,包括更好的资源管理、可预测的应用程序行为和改进的响应性。然而,采用RTOS需要重新思考程序结构,关于基于RTOS的开发产业界仍然存在一些误解。资深媒体人Robert Huntley与Segger、Zephyr Project和北欧半导体(Nordic)的高管进行了交谈,了解到更多关于开发人员必须做出的关键决策,以及如何简化从传统程序结构向RTOS的过渡。

现存结构的作用

一个根本问题是,现存程序结构是否以及在哪里仍然有效。嵌入式RTOS供应商Segger(德国)的合作伙伴营销经理Dirk Akemann说:“这里仍然有时间片轮转的位置,但它越来越不受欢迎,这个问题与小资源MCU仍然相关。”

Linux基金会嵌入式系统副总裁兼Linux托管开源Zephyr项目主任Kate Stewart也提出了类似的观点。“这一切都取决于系统设计,”她说,“这是关于弄清楚嵌入式系统如何与硬件配合使用,以及您是否必须对任务和调度有精确性要求。”

Stewart说:“如果约束很简单,那么你可以使用循环。然而,如果您的设计使用更复杂的环境,想要利用安全、安全和通信协议,并且需要时间限制,则RTOS是必要的。”

当被问及大学是否在向学生开发人员讲授使用RTOS的好处和如何使用时,Akemann表示有工作要做。他说:“一个计算机科学程序员,他们基本上知道如何编程,但这与嵌入式设计中的具体要求无关,而且真正解决这一问题的课程仍然很少,从电气工程专业的角度来看,它是相似的问题。”

RTOS具有可移植性

在实施基于RTOS的开发方法时,需要做出一些关键决定。Stewart说:“你必须了解的第一件事是在系统内工作所需的资源限制。你完成任务的处理器配置是什么?你需要消耗多少电力?然后还有考虑,您是否有完成任务所需的通信等内容要求,启动过程中是否有时间考虑因素,以及您可能需要的采样率是多少。另一个因素是设备是否必须与人机交互。”

Akemann指出了代码可移植性越来越重要。“如果您有在许多不同平台上运行的RTOS,当您选择的MCU不再可用或出现供应链问题时,您可以切换芯片。然而,请记住,如果你不使用RTOS,你的可移植性就会消失。”

首次使用RTOS的开发人员面临着学习曲线,但Akemann表示,这不是不可逾越的。他说:“通常,客户会实施相当笨重的一个应用程序,但根据我的经验,他们很快就习惯了。Segger通过为我们的embOS RTOS提供一份包含许多示例的手册来提供帮助。最初,人们只编写一个超级循环应用程序,并在将任务分配给特定进程之前将所有内容都放在一个任务中。他们甚至可能认为操作系统中存在一些魔力,操作系统将让他们有机会比以前做得更多。情况并非如此,但通常情况下,客户会很快习惯这种现实。”

纠正误解

关于RTOS的一个常见误解是,与类似的裸机方法相比,内存要求要高得多。Stewart反驳说“Linux基金会的开源RTOS Zephyr项目只需要10kB就可以运行一个Blinky应用程序(闪烁LED而不是显示“你好,世界”),然后您可以使用Zephyr Kconfig文件和设备树来添加您需要的其余部分,一切都已经集成到代码库中。”

Stewart还驳斥了RTOS是一个黑匣子的假设,她观察到:“当事情出错时,你需要有透明度和理解能力,这就是你通过开源RTOS获得的。因此,当事情不成功时,你可以把你的分析放到一个新的层级去做。”

Akemann谈到了这样的想法,即使用RTOS可以比没有RTOS做更多事情,同时在这个过程中对硬件施加“小限制”。他说RTOS将“增加一点执行时间,因为需要代码执行才能从一个任务切换到另一个任务”。

Akemann说,“另一个误解是,RTOS是一个完整的操作系统,就像Windows或Linux一样。嵌入式RTOS并非如此,它通常只是调度器本身。它不附带IP堆栈、USB堆栈或支持其他外围设备的协议。当然,一些供应商提供这些堆栈,但我们经常从客户那里听到的误解是,他们想要一个完整的操作系统”包括来自单一来源的一切中间件。

硬件抽象

北欧半导体(挪威)的开发人员营销经理Ali Aljaani就开发人员如何接受RTOS概念提供了见解。“对于开发人员来说,这是一个相当大的话题。”他说,“如果你设身处地为来自嵌入式大学课程的开发人员着想,你控制硬件的方法就是写寄存器。与将硬件设备参数放入头文件中不同,使用RTOS,硬件是从源代码中抽象出来的,就Zephyr而言,所有内容都被抽象成设备树,因此当您选择目标时,它会选择该硬件的设备树。”

Aljaani说,Nordic认识到需要对从裸机方法切换到RTOS的工程师进行教育和指导,并做出了相应的响应。“随着硬件的不断改进、多个内核和丰富的外围设备,如果你想在裸机上做类似过程间通信的事情,那就是一场噩梦。我们决定对教育进行大量投资,并成立了北欧开发者学院。”Aljaani说“例如,我们的NR Connect SDK基础知识课程解释了Zephyr的行为,Zephyr是我们使用的核心RTOS组件,以及Kconfig和设备树的概念。这些需要都是动手操作的,所以我们从用一个很小的源代码解释想法开始,并继续构建。”

麦克泰技术是SEGGER在中国的代理商,具有超过20年嵌入式实时操作系统和工具的市场、服务和培训经验,已经录制许多RTOS视频课程并撰写博客文章,包括开源μC/OS,FreeRTOS和安全商业操作系统embOS,SafeRTOS和Flexible Safety RTOS,了解更多产品信息联系麦克泰技术Info@bmrtech.com。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5212

    文章

    20771

    浏览量

    338861
  • Linux
    +关注

    关注

    88

    文章

    11860

    浏览量

    219840
  • RTOS
    +关注

    关注

    25

    文章

    872

    浏览量

    123277

原文标题:专家谈何时放弃裸机开始使用RTOS

文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    保姆级教程 | i.MX 93开发板适配Zephyr RTOS全解析

    对于嵌入式RTOS选型、工业级产品开发的团队而言,飞凌嵌入式OK-MX9352-C开发板+Zephyr RTOS是兼顾开发效率、系统安全与硬件可靠性的优选方案。
    的头像 发表于 04-28 08:03 1.1w次阅读
    保姆级教程 | i.MX 93开发板适配Zephyr <b class='flag-5'>RTOS</b>全解析

    需要使用 mcxc242 执行 24 位 SPI 传输,时钟处于连续模式,如何实现?

    需要使用 mcxc242 执行 24 位 SPI 传输,时钟处于连续模式。 我该怎么做? 我尝试用这种方式制作 3 包 8 包: 和 2 包 16 个,这样: 从图像中可以看出,使用 SPI_MasterTransferBlocking() 会向我发送每个数据包的时钟,但我
    发表于 04-27 08:04

    基于极海APM32F4的Azure RTOS ThreadX移植过程分享

    最近在玩APM32F407IG的板子,发现官方提供了两个RTOS的demo,FreeRTOS和RT-thread。想着APM32F4这么丰富的资源,是不是也可以跑一下ThreadX RTOS看看
    的头像 发表于 04-02 11:30 1968次阅读
    基于极海APM32F4的Azure <b class='flag-5'>RTOS</b> ThreadX移植过程分享

    【瑞萨RA × Zephyr评测】Zephyr RTOS保姆级环境构建与编译下载踩坑版

    笔者介绍一下Zephyr RTOS 保姆级环境构建与编译下载
    的头像 发表于 01-10 10:03 1w次阅读
    【瑞萨RA × Zephyr评测】Zephyr <b class='flag-5'>RTOS</b>保姆级环境构建与编译下载踩坑版

    如何在Zephyr RTOS中实现延时和计时函数

    在实时操作系统(RTOS)中,时间管理是核心功能之一。无论是任务调度、超时控制,还是周期性事件,延时和计时机制都扮演着至关重要的角色。Zephyr RTOS作为一个轻量级、模块化的开源系统,提供了
    的头像 发表于 12-26 10:32 6368次阅读
    如何在Zephyr <b class='flag-5'>RTOS</b>中实现延时和计时函数

    使用RTOS需要注意的几点内容分享

    是重入也可能是非重入的)外,各任务从不共享任何代码。程序员(特别是那些负责设备驱动程序的)需要注意这一重入性问题。 现在业内已有很多的任务同步机制,从互斥(mutex)到消息系统。从RTOS的角度
    发表于 12-23 06:34

    选择RTOS的要点

    对于许多嵌入式项目来说,在采用非实时操作系统(non-RTOS)的任何场合,也都可采用RTOS。但是,要找到一款具有完全相同应用编程接口(API)的匹配RTOS就相当困难了。因此,许多传统的操作系统
    发表于 12-12 08:00

    如何在 RTOS 中处理微控制器的低功耗特性

    简单讨论一下设计思路,更详细的设计,需要查阅所使用的 RTOS 相关文档资料。RTOS 一般采用基于时间片轮转的抢占式任务调度机制,在实际应用过程中,一般的低功耗设计思路如下: 当 Idle 任务
    发表于 12-12 07:07

    RTOS Crash 问题全维度分析与解决指南

    RTOS Crash 问题全维度分析与解决指南 RTOS(实时操作系统)的Crash(崩溃)是嵌入式实时系统中最致命的故障之一,直接破坏系统的实时性、可靠性,甚至引发安全事故。不同于通用操作系统
    发表于 12-08 03:56

    学习RTOS的意义?

    对于嵌入式软件工程师,学习RTOS非常有必要。 1. 项目需要 随着产品要实现的功能越来越多,单纯的裸机系统已经不能完美地解决问题,反而会使编程变得更加复杂,如果想降低编程的难度,就必须引入
    发表于 11-27 08:16

    何时使用 GPIO 中断和外部中断?

    何时使用 GPIO 中断和外部中断?
    发表于 08-26 07:27

    RTOS怎么实现共享内存?

    K230的RTOS支持POSIX标准的共享内存吗 我尝试使用却失败 还是说需要源码部分配置的开启才可以使用 求教大佬
    发表于 08-04 08:06

    使用RTOS的SDK,调整rtsmart-menuconfig出现编译错误怎么解决?

    .想要启用USB的Host主模式,在rtos_k230下改动rtsmart-menuconfig 2.进入RT-Thread Components---> 3.进入Device
    发表于 07-22 07:59

    请问编译纯rtos到底是选择Linux+rtos的sdk编译only rtos还是直接使用rtos sdk?

    编译纯rtos到底是选择Linux+rtos的sdk编译only rtos还是直接使用rtos sdk?
    发表于 07-11 07:22

    下一代PX5 RTOS具有哪些优势

    许多古老的RTOS设计至今仍在使用,包括Zephyr(1980年代)、Nucleus(1990年代)和FreeRTOS(2003年)。所有这些旧设计都有专有的API,通常更大、更慢,并且缺乏下一代RTOS的必要安全认证和功能。
    的头像 发表于 06-19 15:06 1376次阅读