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

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

3天内不再提示

解锁Zephyr实时操作系统深度调优能力

恩智浦MCU加油站 来源:恩智浦MCU加油站 2026-01-30 09:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在完成一段程序后,开发者往往还会面临一系列关键问题:

我的代码究竟占用了多少Flash/RAM空间?

当前任务实际使用了多少堆栈(Stack)

所分配的内存是否充足?是否存在潜在的堆栈溢出风险

可以说,代码编写只是项目开发的起点,而随之而来的资源分析与性能调优才是确保系统稳定可靠的关键环节。

为了帮助开发者更高效地解决这些问题,本文将基于Zephyr实时操作系统,为大家介绍几种常用且实用的资源分析方法,助力更精准地进行嵌入式系统调优。

Zephyr RTOS提供了一系列优化工具,用于分析代码的ROM、RAM和堆栈使用情况。这些工具可以帮助开发者优化固件大小、提高执行效率,并确保系统在资源受限的设备上稳定运行。

1. 内存与存储分析工具

首先是Zephyr原生自带的一些小工具,Zephyr通过构建系统提供了多个构建选项,用于用户来检查和分析最终生成的固件映像中的资源占用情况,我们可以在编译镜像时添加这些选项来产生对应的报告。

1). rom_report-ROM使用分析:列出所有占用ROM的符号及其大小:

使用方法:

westbuild -t  rom_report

输出示例:

Memoryregion     Used Size Region Size  %age Used
FLASH:        45678B  512KB   8.72%
SRAM:        12345B  64KB    18.84%

2).ram_report-RAM使用分析:显示RAM中的变量和数据结构占用情况:

使用方法:

westbuild -t ram_report

3).stack_usage-堆栈使用分析:计算每个线程的最坏情况堆栈使用量 (需启用CONFIG_STACK_USAGE):

在工程配置中打开控制宏,一般是prj.conf:

CONFIG_STACK_USAGE=y

使用方法:

westbuild -t stack_usage
2. Puncover-可视化代码占用分析

Puncover是一个第三方工具,用于在Web界面中可视化代码的ROM、RAM和堆栈使用情况。

安装与使用:

1).安装Puncover:

pip3 install git+https://github.com/HBehrens/puncover -user

2).构建并启动Puncover:

west build -b reel_board samples/hello_world
west build -t puncover

3).访问Web界面:

-工具会启动一个本地Web服务器(默认http://localhost:5000)

-可浏览文件,查看符号占用情况

3. 其他优化相关工具

1).pahole-结构体优化:分析数据结构的内存布局,优化结构体以减少填充(padding)浪费:

west build -t pahole

2).size-固件大小分析:显示.elf文件的段(text/data/bss)大小:

arm-none-eabi-size build/zephyr/zephyr.elf

4.优化建议

1). 启用编译器优化:使用-ffunction-sections和-fdata-sections配合-gc-sections移除未使用的代码。打开配置开关:

CONFIG_LINKER_GC_SECTIONS=y

2).减少日志影响:

-使用CONFIG_LOG_MODE_DEFERRED提升性能

-调整日志级别:

CONFIG_LOG_DEFAULT_LEVEL=2#仅WARN及以上

5.总结

工具名称 用途 适用场景
rom_report 分析 Flash 占用情况 优化固件大小
ram_report 分析 RAM 变量占用 排查内存溢出
stack_usage 检查线程堆栈使用情况 防止堆栈溢出
puncover 可视化代码空间占用 深度优化关键代码模块
pahole 优化结构体内存布局 减少结构体内存浪费

借助Zepyhr工具,开发者可以在资源受限的嵌入式系统中更高效地开展开发工作,从而精准掌握系统资源使用情况,持续优化代码结构,提高运行效率并有效降低内存占用。充分利用这些分析手段,将使我们的应用更加稳健、可靠,也让嵌入式开发的每一行代码都发挥更大价值。

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

    关注

    5211

    文章

    20737

    浏览量

    338342
  • 操作系统
    +关注

    关注

    37

    文章

    7452

    浏览量

    129692
  • RTOS
    +关注

    关注

    25

    文章

    871

    浏览量

    123259

原文标题:解锁Zephyr深度调优能力:带你看清代码每一字节

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    实时操作系统和分时操作系统的区别

    操作系统能否满足实时性要求来区分,可把操作系统分成分时操作系统实时操作系统,分时操作系统按照
    发表于 11-14 17:39 1.3w次阅读

    详解实时操作系统和非实时操作系统

    实时操作系统,当外界事件和数据产生时,系统能以足够快的速度予以处理,其处理结果能在规定的时间内控制生产结果或对系统做出响应,并控制所有实时
    的头像 发表于 12-26 09:54 7081次阅读
    详解<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>和非<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>

    物联网有哪些开源实时操作系统

    、Linux、Android、iOS等操作系统,对任务处理能力要求比较高。物联网操作系统一般地,对实时性控制要求比较高的应用MCU用不到RTOS,如电机控制等。而随着物连接到网络的发展
    发表于 09-18 09:05

    BenOS实时操作系统解密

    BenOS实时操作系统解密BenOS实时操作系统解密BenOS实时操作系统解密BenOS
    发表于 01-12 10:54 5次下载

    Zephyr物联网操作系统模块化内核设计带来完美体验

    为支持最小尺寸的物联网设备,Linux 基金会发布了 Zephyr物联网操作系统,旨在为物联网设备创建一个开源的实时操作系统 (RTOS)。
    发表于 07-28 11:05 2249次阅读

    实时操作系统特性的讨论

    嵌入式实时系统中采用的操作系统我们称为嵌入式实时操作系统,它既是嵌入式操作系统,又是
    的头像 发表于 09-30 09:31 5982次阅读

    如何使用物联网操作系统Zephyr实现“连续集成”开源软件的详细说明

    物联网操作系统是配置在物联网硬件设备上的第一层软件,是对物联网硬件系统的首次扩充。Zephyr作为一款专门为内存受限的物联网设备而推出的开源实时操作
    发表于 05-16 18:06 1次下载
    如何使用物联网<b class='flag-5'>操作系统</b><b class='flag-5'>Zephyr</b>实现“连续集成”开源软件的详细说明

    实时操作系统的特点_实时操作系统的组成

    本文主要阐述了实时操作系统的特点及组成。实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理
    发表于 09-01 16:48 6070次阅读

    实时操作系统和非实时操作系统的区别

    本文主要阐述了实时操作系统和非实时操作系统的区别。
    发表于 09-02 15:58 1.2w次阅读

    欧拉(openEuler)Summit 2021:基于AI的操作系统性能引擎

     欧拉(openEuler)Summit 2021直播会上,重点介绍基于AI的操作系统性能引擎。
    的头像 发表于 11-10 10:46 2898次阅读
    欧拉(openEuler)Summit 2021:基于AI的<b class='flag-5'>操作系统</b>性能<b class='flag-5'>调</b><b class='flag-5'>优</b>引擎

    openEuler Summit开发者峰会:基于AI的操作系统性能引擎A-Tune

    openEuler Summit开发者峰会:基于AI的操作系统性能引擎A-Tune
    的头像 发表于 11-10 10:51 2245次阅读
    openEuler Summit开发者峰会:基于AI的<b class='flag-5'>操作系统</b>性能<b class='flag-5'>调</b><b class='flag-5'>优</b>引擎A-Tune

    实时操作系统

    实时操作系统(Real Time Operating System,简称RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或
    的头像 发表于 11-17 20:42 2576次阅读

    瑞萨正式加入Zephyr项目,携手共建开源实时操作系统新生态

    近日,业界领先的半导体解决方案提供商瑞萨宣布正式加入Zephyr®项目,并荣升为银级会员。Zephyr作为Linux基金会的开源项目,致力于面向未来、资源受限的设备打造安全、互联且灵活的实时
    的头像 发表于 03-12 09:18 1681次阅读

    带你认识实时操作系统(rtos)

    实时操作系统(RTOS)是为嵌入式系统实时应用提供一个稳定、可预测和高效运行环境的操作系统实时
    的头像 发表于 04-16 16:30 3000次阅读
    带你认识<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>(rtos)

    简单认识RTOS实时操作系统

    RTOS(Real Time Operating System,实时操作系统)是一种专门设计用于在严格时间限制内处理任务的操作系统。它以其高实时性、多任务处理
    的头像 发表于 08-20 11:20 7438次阅读