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

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

3天内不再提示

如何在Zephyr中进行静态代码分析

IAR爱亚系统 来源:IAR爱亚系统 2025-10-17 10:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式软件开发中,“能编译通过”并不等于“可以放心交付”。安全性、可靠性和合规性是产品能否顺利量产的关键。进入量产的Bug会浪费宝贵的工程时间,也会削弱用户信任;安全漏洞可能暴露设备,带来严重后果;在受监管市场中,若未满足MISRA或CERT检查要求,甚至会直接导致产品发布延迟。

越早发现问题,修复起来越安全,修复成本也越低。这正是静态代码分析(Static Code Analysis)的价值所在:在开发早期尽早发现缺陷和不合规问题,避免后期高昂的代价。借助Zephyr,你可以将静态代码分析无缝集成到构建流程中,让质量保障成为开发的自然一环。

01静态代码分析无缝融入Zephyr west构建流程

传统上,将静态代码分析工具接入嵌入式构建流程往往十分麻烦。Zephyr通过在west构建系统中原生支持静态代码分析工具,彻底解决了这一痛点——无需额外脚本,无需临时补丁,也无需担心后期维护。

在Zephyr中启用静态代码分析工具,只需设置ZEPHYR_SCA_VARIANT构建参数即可(可以将其设置为 CMake 参数或环境变量):

west build -b -- -DZEPHYR_SCA_VARIANT=

02原生支持IAR C-STAT

如果你的项目需要满足严格的安全、质量或合规要求,Zephyr现已原生支持IAR平台的C-STAT静态代码分析工具,让这一过程更加高效顺畅。

IAR C-STAT是一款成熟的C/C++静态代码分析工具,可针对以下标准和最佳实践自动进行检查:

MISRA C / MISRA C++

CERT C / CERT C++

CWE和安全最佳实践

可靠性和可维护性规则

在Zephyr中启用IAR C-STAT非常简单,只需在正常构建命令中额外添加参数来选择IAR C-STAT 作为 Zephyr 的静态代码分析工具:

west build -b stm32f429ii_aca samples/basic/blinky -- -DZEPHYR_SCA_VARIANT=iar_c_stat

03灵活配置分析规则

不同团队的质量目标各不相同:有的追求严格的功能安全合规,有的更关注安全性或维护成本。C-STAT提供了灵活的配置选项,让分析规则完全适配你的开发流程:

CSTAT_RULESET — 选择规则集(如all、cert、misrac2012、misrac++2008、stdchecks、security)

CSTAT_ANALYZE_THREADS — 设置分析线程数

CSTAT_ANALYZE_OPTS — 额外分析器参数(如--timeout=900;--deterministic;--fpe)

CSTAT_DB — 指定SQLite数据库路径

CSTAT_CLEANUP — 分析前清空数据库

例如,同时启用MISRA C:2012与CERT检查:

west build -b stm32f429ii_aca samples/basic/blinky --

-DZEPHYR_SCA_VARIANT=iar_c_stat

-DCSTAT_RULESET=misrac2012,cert

04团队选择在Zephyr中使用静态代码分析的理由

静态代码分析不仅仅是满足合规要求,更是打造高质量软件的加速器。通过将静态代码分析深度集成到Zephyr工作流中,团队可以:

及早发现缺陷:如空指针引用、缓冲区溢出、未初始化变量等

快速满足标准:MISRA、CERT等合规检查与构建过程融为一体

提升评审效率:工具自动标出违规项,工程师专注于设计

增强交付信心:持续、自动的代码健康证明,更好应对审计与客户要求

05总结

借助Zephyr的静态代码分析基础架构和IAR C-STAT的原生支持,您可以在每次构建中自动完成安全、功能安全和合规性检查——无论是在本地开发、CI/CD,还是容器环境中。这能帮助团队及早发现问题,避免后期返工和风险,持续交付更干净、更安全、符合标准的嵌入式软件。

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

    关注

    5212

    文章

    20783

    浏览量

    338960
  • IAR
    IAR
    +关注

    关注

    5

    文章

    423

    浏览量

    38730
  • Zephyr
    +关注

    关注

    1

    文章

    63

    浏览量

    6648

原文标题:在Zephyr中进行静态代码分析:借助IAR C-STAT构建更安全、更高质量的代码

文章出处:【微信号:IAR爱亚系统,微信公众号:IAR爱亚系统】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用IAR Arm工具链开发和调试Zephyr RTOS

    Zephyr是近些年来兴起的一款开源、可扩展RTOS (Zephyr不仅仅是一个内核,还包含了强大的中间件),专为资源受限的嵌入式设备设计,支持多种CPU架构,提供完整的开发工具链和丰富的生态系统,越来越多MCU厂商积极拥抱Zephyr
    的头像 发表于 05-25 09:50 2490次阅读
    使用IAR Arm工具链开发和调试<b class='flag-5'>Zephyr</b> RTOS

    何在 RAM 中使用 NXP Link2 在 NXP Zephyr V4.1 中运行“hello_world”示例

    大家好 我正在 i.MXRT1072 上使用 Zephyr OS 开发系统 在 MCUXpresso IDE 中,我可以使用“将应用程序链接到 RAM”功能将二进制文件直接加载到 RAM 中进行测试
    发表于 05-25 07:28

    何在 Zephyr Os 中显示没有 waveshare 0144 英寸液晶显示器的 AR7 Stream?

    带有FRDM-IMX55和FRDM-IMX93的A91上运行Zephyr。 可以参考此示例。但可能需要使用waveshare-7英寸LCD来显示流。 想知道如何在没有7英寸LCD的情况下显示AP0144流?或者IMX93_EVK是否有接口可以通过HDMI或其他设备连接显示
    发表于 05-07 06:20

    Zephyr OS上启用NPU的实用方案

    今天,我们将正式在 Zephyr中加入NPU软件支持,让模型不仅能“跑起来”,还能“跑得飞快”。是的,本期开始就是实战环节!
    的头像 发表于 03-09 10:37 1257次阅读
    在<b class='flag-5'>Zephyr</b> OS上启用NPU的实用方案

    在 VisionFive 2 上尝试 Zephyr 时没有输出是怎么回事?

    我按照指示进行作官方文档在 VisionFive 2 上测试 Zephyr hello_world demo,虽然我成功编译了目标程序,但发送到 UART 后,我在 tty 上没有看到任何输出
    发表于 02-05 06:49

    【瑞萨FPB-RA6E2试用】GPIO-Zephyr RTOS 闪烁程序及设备树理解

    下的zephyr.bin文件,可以上传到开发板进行测试。 # 烧录 (.venv) PS D:\\\\\\\\Zephyr\\\\\\\\myapps\\\\\\\\fpb_ra6e2
    发表于 01-13 14:37

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

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

    当RA MCU遇见Zephyr系列(4)——闪灯程序的构建与调试

    当RAMCU遇见Zephyr,打通嵌入式开发任督二脉!当RAMCU遇见Zephyr系列(2)——搭建瑞萨RAVScode开发环境当RAMCU遇见Zephyr系列(3)——在Vscode中配置
    的头像 发表于 01-06 18:05 7744次阅读
    当RA MCU遇见<b class='flag-5'>Zephyr</b>系列(4)——闪灯程序的构建与调试

    当RA MCU遇见Zephyr系列(3)——在Vs code中配置Zephyr集成开发环境

    RA生态工作室关注我们上一篇文章介绍了如何在VScode中使用瑞萨官方插件为RA芯片创建项目与项目调试,相信大家对RA在VScode中的开发有了基础的了解。当RAMCU遇见Zephyr,打通
    的头像 发表于 01-01 10:04 5270次阅读
    当RA MCU遇见<b class='flag-5'>Zephyr</b>系列(3)——在Vs  code中配置<b class='flag-5'>Zephyr</b>集成开发环境

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

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

    分析嵌入式软件代码的漏洞-代码注入

    安全漏洞时,测试人员必须采取一个攻击者的心态。 诸如模糊测试的技术可能是有用的,但是该技术通常太随机,无法高度可靠。 静态分析可以有效地发现代码注入漏洞。注意到早期生成的静态
    发表于 12-22 12:53

    【瑞萨RA6E2】zephyr系统适配、点亮led及uart输出测试

    、应用程序分析 上面的初步效果已经看到了,接下来我们分析一下应用程序是如何实现的。程序在如下位置: 从图上可见程序代码并不多,我们进行讲解 #include <stdio.h&g
    发表于 11-16 17:57

    请问如何在keil μVision 5上进行ARM编译器的代码优化?

    何在keil μVision 5上进行ARM编译器的代码优化?
    发表于 08-20 07:37

    汽车软件团队必看:基于静态代码分析工具Perforce QAC的ISO 26262合规实践

    ISO 26262合规指南,从ASIL分级到工具落地,手把手教你用静态代码分析(Perforce QAC)实现高效合规。
    的头像 发表于 08-07 17:33 1432次阅读
    汽车软件团队必看:基于<b class='flag-5'>静态</b><b class='flag-5'>代码</b><b class='flag-5'>分析</b>工具Perforce QAC的ISO 26262合规实践

    使用DAP miniWiggle在ADS中进行代码的工程下载以及进入调试模式进行调试,需要安装配置什么环境?

    如题,现在想使用DAP miniWiggle在ADS中进行代码的工程下载以及进入调试模式进行调试,请问需要安装配置什么环境以及相关的有什么操作步骤,感谢解答
    发表于 07-31 06:08