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。

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

    关注

    5188

    文章

    20172

    浏览量

    329245
  • Linux
    +关注

    关注

    88

    文章

    11635

    浏览量

    218099
  • RTOS
    +关注

    关注

    25

    文章

    863

    浏览量

    122637

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    选择RTOS的要点

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

    学习RTOS的意义?

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

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

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

    RTOS怎么实现共享内存?

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

    请问编译纯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 897次阅读

    rtosrtos&linux能否调整连接windows后的设备名称?

    rtosrtos&linux 能否调整连接windows后的设备名称
    发表于 05-14 06:19

    如何在Eclipse ThreadX RTOS中集成SystemView

    SEGGER实时软件分析工具SystemView已经在ThreadX v6.4.2上进行了测试。SystemView从v3.60c版本支持Eclipse ThreadX(Azure RTOS),用户
    的头像 发表于 05-06 17:11 1219次阅读

    k230 rtos串口1无输出怎么解决?

    studio k230 linux+rtos,在大核里打开了uart1设备,使用例程通过uart1发送和接收数据,但是电脑上没有接收到任何数据,01 studio的串口1是io3和io4,请问是需要配置引脚功能么?如果需要,怎么
    发表于 04-28 08:02

    详解RTOS中的Hook函数

    Hook函数是RTOS中的一个关键特性,通过该函数,用户可以增强对任务管理的控制,定义系统行为。
    的头像 发表于 03-24 16:14 857次阅读

    RTOS中的本地存储指针使用

    本地存储指针是RTOS中的一个重要特性,增强了任务管理和数据处理能力。在RTOS上下文中,本地存储是指存储在本地的特定任务或对象的数据。通常与任务本地存储(Task Local Storage,TLS)有关,其中数据存储在任务控制块(TCB)中,允许每个任务具有私有的、特
    的头像 发表于 02-28 16:33 1183次阅读
    <b class='flag-5'>RTOS</b>中的本地存储指针使用

    如果需要使用DMD进行成像控制,需要用到哪些部件?

    我想问一下,如果需要使用DMD进行成像控制,需要用到哪些部件?是只需要控制板和DMD芯片么?那么评估模块是用来干什么的呢?
    发表于 02-28 06:40

    Flexible Safety RTOS的技术特征

    Embedded Office的Flexible Safety RTOS是专为具有严格功能安全要求的嵌入式系统量身定制的、先进的实时操作系统。该RTOS专为工业自动化、汽车、铁路和医疗设备等行业而设
    的头像 发表于 01-07 11:29 1018次阅读

    RTOS中的错误检查机制

    在嵌入式应用中,有可能发生各种各样的错误,系统必须能够检测到这些错误并作出适当的响应。RTOS通常内置了一些错误检查功能,用于检测错误并向应用提供响应错误的方法。
    的头像 发表于 01-03 14:44 1034次阅读

    使用任务通知提高RTOS应用的效率

    在实时嵌入式系统中,性能和资源效率是决定设计成败的关键因素。传统的实时操作系统(RTOS)提供了如队列、信号量和事件组机制,实现任务之间的同步和通信。FreeRTOS/SAFERTOS还提供一种方法可以使这些过程更快、更轻量化,即任务通知。
    的头像 发表于 12-27 14:54 1088次阅读