前言
2023年Zephyr开发者大会(ZDS)于6月27日至30日在捷克布拉格隆重举行。与以往两次不同,本次ZDS由Zephyr项目规划和管理,并作为首届嵌入式开源峰会(EOSS)的一部分进行。在这个令人期待已久的盛会中,全球Zephyr开发者们共同探讨了Zephyr实时操作系统(RTOS)的最新技术与发展趋势。作为一款开源、灵活和可扩展的嵌入式实时操作系统,Zephyr项目在2014年由英特尔发起,2016年作为Linux基金会项目正式面向公众启动,得到了全球范围内的广泛关注和采用。
ZDS 2023共70余个技术报告,涵盖了使用指导与展示、新功能与技术、架构修改与操作系统、多核异构与虚拟化、模拟器、测试、工业流程与代码管理、安全性、应用案例、工具与调试等丰富多样的内容。湖大嵌入式实验室的小伙伴们将对本次大会的所有技术报告进行逐一收集、整理与分享,尽最大努力为Zephyr开发者提供ZDS 2023技术报告的开发经验、实践成果以及解决方案的参考。
今天分享第18篇技术报告,题目为:
“片外外围仿真器”
作者简介

Aaron E. Massey
谷歌软件工程师 - ChromeOS / Zephyr
文章简介
本文主要介绍了外围模拟器做仿真模拟的优势,创造仿真模拟器的条件(若干个c语言源代码,定义类似于设备驱动程序,特定于模拟器的参数),以及介绍了使用仿真模拟器的必要条件,展示了谷歌的现有研究,以及对模拟器和QEMU进行比较,提出可以在为Qemu构建的Zephyr映像中使用外围模拟器。
模拟器工作流程
CONFIG EMUL判定YES

CONFIG EMUL判定NO

使用模拟器的优势

可见模拟器在各方面都比计算机硬件更加具有优势,计算机硬件对各方面的要求都比较高。
1. 仿真器通常由单个C源代码组成
2. 定义驱动程序

3. 特定于模拟器的参数
bus_api----总线消息传递(必备)
backend_api---用于测试场景测试
创建一个模拟器- I2C bus_api 示例

backend_api:目标是设置测试场景

创建仿真器- backend_api - bc12示例

使用一个仿真模拟器

谷歌的现有成就
1. 代码覆盖率从30%到90%
2. 能捕获到驱动程序错误
3. 能检测到死码
4. 有快速原型驱动程序
模拟器/ Qemu -比较
