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,还是容器环境中。这能帮助团队及早发现问题,避免后期返工和风险,持续交付更干净、更安全、符合标准的嵌入式软件。

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

    关注

    5186

    文章

    20143

    浏览量

    328679
  • IAR
    IAR
    +关注

    关注

    5

    文章

    400

    浏览量

    38333
  • Zephyr
    +关注

    关注

    0

    文章

    47

    浏览量

    6510

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    PWM周期和占空比是否可以在程序中进行调节?

    PWM周期和占空比是否可以在程序中进行调节
    发表于 11-20 07:50

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

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

    知识分享 | 使用MXAM进行AUTOSAR模型的静态分析:Embedded Coder与TargetLink模型

    知识分享在知识分享栏目中,我们会定期与读者分享来自MES模赛思的基于模型的软件开发相关Know-How干货,关注公众号,随时掌握基于模型的软件设计的技术知识。使用MXAM进行AUTOSAR模型的静态
    的头像 发表于 08-27 10:04 482次阅读
    知识分享 | 使用MXAM<b class='flag-5'>进行</b>AUTOSAR模型的<b class='flag-5'>静态</b><b class='flag-5'>分析</b>:Embedded Coder与TargetLink模型

    请问如何在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 864次阅读
    汽车软件团队必看:基于<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

    全网最全学习Zephyr开发教程资料汇总-从基础文档视频到上手实操示例

    Zephyr作为一款开源且极具灵活性与可扩展性的实时操作系统(RTOS),拥有原生的 BLE 协议栈、完整的 Net 协议栈,涵盖 TCP/IP 与应用层协议,具备出色的实时性,支持硬实时任务调度
    发表于 07-04 11:13

    Zephyr SDK Glue v0.5.0 发布

    各位关注先楫的小伙伴们,基于Zephyrv3.7.0(LTS)版本和hpm_sdkv1.6.0版本的ZephyrSDKgluev0.5.0正式发布了。先楫MCU的Zephyr开发包Zephyr是一个通用的嵌入式实时操作系统,具备良好的拓展性。ZephyrSDKGlue(简
    的头像 发表于 06-17 16:53 1247次阅读
    <b class='flag-5'>Zephyr</b> SDK Glue v0.5.0 发布

    使用Percepio View免费跟踪工具分析Zephyr应用

    Percepio View免费跟踪工具现在可以针对Zephyr应用程序进行跟踪和可视化分析了。Percepio View可以帮助开发人员理解和调试Zephyr中的固定优先级的多线程行为
    的头像 发表于 05-27 15:08 578次阅读
    使用Percepio View免费跟踪工具<b class='flag-5'>分析</b><b class='flag-5'>Zephyr</b>应用

    使用Tracealyzer调试Zephyr中的优先级反转

    Percepio Tracealyzer已经在600多个支持Zephyr的开发板上完成了验证,可以帮助开发人员改进Zephyr应用的调试和性能分析
    的头像 发表于 04-21 11:31 975次阅读
    使用Tracealyzer调试<b class='flag-5'>Zephyr</b>中的优先级反转

    恩智浦分享Zephyr调试技巧

    前面几期中,我们着重给大家介绍了如何搭建Zephyr开发环境,以及如何添加自己的应用代码。今天让我们开始一个新的篇章:Zephyr调试技巧以及介绍Ozone进行
    的头像 发表于 03-13 09:05 1872次阅读

    恩智浦解读Zephyr log系统的使用 Zephyr的shell和log功能介绍

    之前 我们从 0 开始新建了一个简单的 Zephyr 应用- 从0开始打造属于自己的HelloWorld ,本期就 带着大家熟悉一下 Zephyr 的 shell 和 log 系统。 首先给大家介绍
    的头像 发表于 02-27 09:19 1697次阅读
    恩智浦解读<b class='flag-5'>Zephyr</b> log系统的使用 <b class='flag-5'>Zephyr</b>的shell和log功能介绍

    IAR正式加入Zephyr项目

    全球领先的嵌入式系统开发软件解决方案供应商IAR宣布,正式加入Zephyr项目,成为银牌会员。Zephyr是由Linux基金会托管并广泛应用于嵌入式行业的开源实时操作系统(RTOS),已得到众多
    的头像 发表于 02-12 14:19 916次阅读

    使用MCUXpresso for VS Code插件开发Zephyr的hello world

    本期来到Zephyr实战经验演练,小编带着大家一起使用MCUXpresso for VS Code插件来开发一个属于Zephyr的hello world。
    的头像 发表于 01-03 09:21 1779次阅读
    使用MCUXpresso for VS Code插件开发<b class='flag-5'>Zephyr</b>的hello world

    Zephyr领进门系列:MCUXPresso for VS Code插件安装

    一套PC端的Zephyr OS开发环境。话不多说,开整! 1.  安装VS Code 相信不少小伙伴已经将VS Code当作装机必备工具了,无论是做代码编辑还是说通过安装形形色色的插件进行功能扩展
    的头像 发表于 12-19 09:53 2735次阅读
    <b class='flag-5'>Zephyr</b>领进门系列:MCUXPresso for VS Code插件安装