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

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

3天内不再提示

从裸机调度过渡到RTOS的7个小技巧

lilihe92 ? 来源:最后一个bug ? 作者:最后一个bug ? 2022-11-29 11:09 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

正文

实时操作系统已经成为许多嵌入式系统中的关键组件,从裸机调度过渡到RTOS可能是一件棘手的事情。这里有七个小技巧可以帮助嵌入式开发人员更轻松地完成过渡。

1

首先规划你的架构

如果你从未使用过UML或者对软件架构不感兴趣,现在是时候学习一下了。 使用RTOS时,开发人员仔细考虑每项任务、同步和通信机制是至关重要的。这些细节不能仅仅存储在工程师的头脑中,而是需要以图表的形式记录下来,以便在需要时可以查看和更新。开发一个基于RTOS的应用程序会很快变得复杂,考虑清楚应用程序的行为是很重要的。

2

仔细跟踪内存的使用情况

与开发裸机应用程序不同,RTOS任务和同步结构会很快耗尽资源受限设备中的内存。开发人员需要非常小心地监控内存,并跟踪内存的去向。

创建几个任务、几个信号量和互斥体,却发现malloc因为所有堆空间都已被使用而失败,这种情况并不罕见。

3

预先创建所有的任务

RTOS为嵌入式开发人员提供了广泛的功能,例如创建任务和销毁任务的能力。关心内存使用的开发人员可能倾向于只在需要时创建任务,然后在任务完成后销毁它们。虽然这在概念上很棒,但在资源受限的系统中,通常没有复杂的堆管理器可以处理堆碎片。结果可能是一个碎片堆,在程序执行过程中的某个时刻突然没有内存可以分配。 建议在系统初始化期间创建所有使用堆的对象。结果似乎是静态分配的对象,如果存在内存问题,该问题将在系统启动时显现出来。

4

尽量不要关闭堆栈保护

裸机开发者通常痴迷于编写尽可能高效的代码。意识到存在使用时钟周期的堆栈监视器成为优化和移除的诱人目标。尽量不要这样做!

堆栈监视器用于检测堆栈溢出和其他与堆栈相关的问题。虽然它确实使用了几个时钟周期,但好处远远超过了性能成本。

5

优化任务堆栈

不要依赖默认的堆栈大小。在许多RTOS中,任务的默认堆栈大小大约是0x200。这通常是堆栈深度,而不是使用的字节数!仅仅是一个闪烁的LED的任务就可能使用了整整千字节的堆空间! 嵌入式开发人员确保执行最坏情况堆栈分析,并适当地确定每个任务堆栈的大小。从长远来看,这将有助于节省内存!

6

启动RTOS感知调试

现代微控制器有一些非常酷的调试功能,如实时跟踪和RTOS感知调试。在微控制器和RTOS中启用这些功能。它们将允许开发人员跟踪哪些任务运行了多长时间,以什么顺序运行,并且可以帮助识别许多与RTOS相关的常见问题。

7

仔细选择任务优先级

预先开发一个软件非常有用的一个原因是,它提供了系统中发生的所有事情的大画面。有了这个大图,决定系统中每个任务的优先级就变得更容易了。必须仔细选择优先级,以确保任务不会耗尽CPU时间,并确保系统中不会出现优先级反转等问题。

8

最后

使用RTOS对嵌入式开发人员来说是非常有益的,并且有助于加快开发周期。许多中间件、库和框架依赖于RTOS,掌握RTOS确实是非常有必要的一件事。原文转载于: 网络,直接来源电子产品世界

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

    关注

    8

    文章

    3128

    浏览量

    75346
  • RTOS
    +关注

    关注

    24

    文章

    851

    浏览量

    121299
  • 裸机
    +关注

    关注

    0

    文章

    40

    浏览量

    6713

原文标题:嵌入式裸机过渡到RTOS七点建议~

文章出处:【微信号:最后一个bug,微信公众号:最后一个bug】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【STM32单片机学习进阶路线】FreeRTOS嵌入式开发指南:入门到智能循迹避障小车项目实战(含文档代码)

    STM32的学习路径一般是先掌握裸机开发,再进阶学习RTOS。简单的功能可通过裸机实现,而复杂产品则需借助RTOS来完成。随着RTOS应用场
    的头像 发表于 05-29 11:46 ?381次阅读
    【STM32单片机学习进阶路线】FreeRTOS嵌入式开发指南:<b class='flag-5'>从</b>入门到智能循迹避障小车项目实战(含文档代码)

    STM32裸机及FreeRTOS项目分享:U575智能手表+F103智能循迹避障小车(附全套教程/代码)

    初学者学STM32时,有一好的学习路线是非常重要的,推荐"裸机开发--裸机项目--RTOS开发--RTOS项目"这个体系化路线,
    的头像 发表于 05-27 17:09 ?566次阅读
    STM32<b class='flag-5'>裸机</b>及FreeRTOS项目分享:U575智能手表+F103智能循迹避障小车(附全套教程/代码)

    如何在Eclipse ThreadX RTOS中集成SystemView

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

    RTOS如何在FX3中工作?

    大家好, 我正在使用 FX3 进行一项目。 我想知道 RTOS 调度是如何工作的。 我知道调用“CyU3PKernelEntry();”后 RTOS 就会开始工作。 如果我只注册
    发表于 05-06 13:20

    详解RTOS中的Hook函数

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

    美国裸机云服务器是什么详细介绍

    美国裸机云服务器是一种高性能的计算资源,在云计算领域逐渐受到企业和开发者的青睐。主机推荐小编为您整理发布美国裸机云服务器的详细介绍,希望对您了解美国裸机云服务器是什么有帮助。
    的头像 发表于 02-07 15:56 ?346次阅读

    “国产双系统”出炉!复旦微FMQL20SM非对称AMP:Linux + 裸机

    Linux + RTOS/裸机,但需一主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行核间通信。 图 1 FMQL20SM AMP异构多核框架示意
    的头像 发表于 01-24 13:46 ?661次阅读
    “国产双系统”出炉!复旦微FMQL20SM非对称AMP:Linux + <b class='flag-5'>裸机</b>

    EE-130:ADSP-21xx快速过渡到ADSP-219x

    电子发烧友网站提供《EE-130:ADSP-21xx快速过渡到ADSP-219x.pdf》资料免费下载
    发表于 01-14 15:04 ?0次下载
    EE-130:<b class='flag-5'>从</b>ADSP-21xx快速<b class='flag-5'>过渡到</b>ADSP-219x

    RZ T2H PCIe裸机程序开发和Linux下的配置介绍

    ,还提供2PCIe Gen3通道等高速外设。本文主要介绍PCIe外设的功能、裸机下EP模式的程序开发、以及在Linux下,如何编译网卡的流程。
    的头像 发表于 12-18 11:14 ?1784次阅读
    RZ T2H PCIe<b class='flag-5'>裸机</b>程序开发和Linux下的配置介绍

    韩国裸机云服务器是什么?

    韩国裸机云服务器是一种结合了裸机服务器与云端技术,提供多IP地址分配和高性能网络服务的云计算解决方案。主机推荐小编为您整理发布韩国裸机云服务器的详细解释。
    的头像 发表于 11-06 10:11 ?381次阅读

    深入解析Zephyr RTOS的技术细节

    Zephyr是一针对资源受限设备优化的小型、可缩放、多体系架构实时操作系统(RTOS)。Zephyr由Linux基金会维护[1],是一以构建业界最佳的RTOS为目标的开源合作项目。
    的头像 发表于 10-22 16:47 ?2413次阅读
    深入解析Zephyr <b class='flag-5'>RTOS</b>的技术细节

    用GNU构建裸机系统

    基于AT91SAM7S平台,介绍裸机开发,以闪灯为蓝本,涉及汇编、链接、C/C++、中断等。   无处不在的ARM处理器家族得到了GNU C/C++工具链的良好支持。虽然许多在线和印刷资源关注
    发表于 10-16 17:34 ?0次下载

    freertos和rtos区别是什么

    FreeRTOS 和 RTOS(实时操作系统)是两不同的概念,但它们之间有紧密的联系。FreeRTOS 是一特定的开源实时操作系统,而 RTOS 是实时操作系统的一般概念。 概念定
    的头像 发表于 09-02 14:18 ?3153次阅读

    freertos和裸机有什么区别

    FreeRTOS 和裸机编程是两种不同的嵌入式系统开发方法,它们在设计理念、资源使用、功能实现等方面有着显著的差异。 1. 基本概念 1.1 FreeRTOS FreeRTOS 是一小型的、可裁剪
    的头像 发表于 09-02 14:13 ?3079次阅读

    RTOS的特性和类型

    实时操作系统(RTOS)是一种可运行实时计算应用程序的软件平台,用于处理具有明确时间约束的事件和数据。与通用操作系统(GPOS)不同,RTOS必须在有限的硬件资源上调度应用程序之间的处理和数据共享
    的头像 发表于 08-20 11:29 ?1624次阅读