目前的位置: 首页 学术信息 正文

ZDS 2023技术报告分享第24篇:使用Zephyr时提高效率的实用技巧


前言

2023年Zephyr开发者大会(ZDS)于6月27日至30日在捷克布拉格隆重举行。与以往两次不同,本次ZDS由Zephyr项目规划和管理,并作为首届嵌入式开源峰会(EOSS)的一部分进行。在这个令人期待已久的盛会中,全球Zephyr开发者们共同探讨了Zephyr实时操作系统(RTOS)的最新技术与发展趋势。作为一款开源、灵活和可扩展的嵌入式实时操作系统,Zephyr项目在2014年由英特尔发起,2016年作为Linux基金会项目正式面向公众启动,得到了全球范围内的广泛关注和采用。


ZDS 2023共70余个技术报告,涵盖了使用指导与展示、新功能与技术、架构修改与操作系统、多核异构与虚拟化、模拟器、测试、工业流程与代码管理、安全性、应用案例、工具与调试等丰富多样的内容。湖大嵌入式实验室的小伙伴们将对本次大会的所有技术报告进行逐一收集、整理与分享,尽最大努力为Zephyr开发者提供ZDS 2023技术报告的开发经验、实践成果以及解决方案的参考。


今天分享第24篇技术报告,由张国栋整理,题目为:

“使用Zephyr时提高效率的实用技巧”



作者简介

Benjamin Cabé是一位技术爱好者,热衷于帮助开发人员构建创新解决方案。他在领导物联网、嵌入式和人工智能领域的一些顶级社区和公司的开发人员参与计划方面拥有超过15年的经验。他发明了一种屡获殊荣的开源和开放硬件人工鼻子。目前是Linux基金会Zephyr项目的开发倡导者。


背景

使用现代实时操作系统(RTOS)开发嵌入式应用程序可能具有挑战性,从快速原型到生产就绪应用程序可能令人生畏。Benjamin Cabé介绍嵌入式开发最佳实践的具体示例,以及有用的开发工具,这些工具不仅可以节省时间,还可以帮助构建更健壮的应用程序。以Zephyr RTOS为例,但讨论的概念和工具适用于任何RTOS。涵盖的一些主题包括:通过仿真软件简化测试(例如 Wokwi、Renode、qemu 等)、增强命令行、嵌入式项目设置CI/CD、利用SBOM提高安全性和可追溯性、利用一些很酷的Visual Studio代码扩展进行嵌入式开发 。


嵌入式开发痛点

  • 有限的资源(内存、处理能力)。

  • 软件工程实践有时可能会落后(CI/CD、自动化测试)。

  • 软件供应链管理繁琐。

  • 安全往往是事后才想到。



仿真软件模拟

  • Wokwi是用来上传固件并开始模拟,例如zephyr_esp32-blinky-pwm.elf.

  • Renode是Antmicro公司发布的一个开发框架,使得开发人员通过模拟物理硬件系统加速物联网和嵌入式系统的开发。

  • Arm Virtual Hardware通过虚拟化流行的IoT开发套件来扩展并加速 IoT 软件开发。



占用空间和内存使用情况分析

  • 分析C/C++ 二进制文件的代码大小、静态变量和堆栈使用情况。

  • 创建包含每个目录的反汇编程序和调用堆栈分析的报告,文件或函数。

  • Zephyr + puncover:

    West build -b my_board samples/hello_world \-- DCONFIG_STACK_USAGE=y
    
    west build -t puncover

  • RAM/Flash分析:

    west build -t ram_report
    
    west build -t rom_report
  • 线程分析:https://docs.zephyrproject.org/latest/services/debugging/thread-analyzer.html



Zephyr shell

  • 管理软件供应链:

    Zephyr 在每个版本中都会附带 SBOM。
    
    消费者可以利用内置工具为其可交付成果生成源代码并构建 SBOM。

  • 使用 Zephyr 生成 SBOM:

    west spdx --init -d BUILD_DIR
    
    west build -d BUILD_DIR [...]
    
    west spdx -d BUILD_DIR
  • 增加Zephyr程序的安全性:

    禁用所有可能有助于增加漏洞表面的功能和编译标志。
    
    启用所有可以提高整体安全性的功能。
  • Zephyr 安全性工具:



参考

  1. https://github.com/kartben/zds2023-demos

  2. https://chat.zephyrproject.org/

  3. https://zephyrproject.org/


上一条:ZDS 2023技术报告分享第26篇:使用Wireshark分析USB通信(数据传输) 下一条:ZDS 2023技术报告分享第25篇:使用Zephyr构建开源智能手表

关闭

嵌入式与网络计算湖南省重点实验室
版权所有 © 2023 湖南大学