ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何在 QEMU 中运行 Zephyr 示例应用并检查结果输出

如何在 QEMU 中运行 Zephyr 示例应用并检查结果输出 如何在 QEMU 中运行 Zephyr 示例应用并检查结果输出【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr这篇文章解决的问题是不依赖任何硬件开发板在宿主机上用 QEMU 模拟运行一个 Zephyr 示例应用并确认它打印了预期的控制台输出。适合刚装好 Zephyr 开发环境、想先验证“构建—运行—看输出”这条链路是否通了的场景。完成后的结果是在 QEMU 里运行hello_world示例看到文档给出的示例输出Hello World! x86然后正常退出 QEMU。整条路径基于 Zephyr 官方文档环境准备部分来自 Getting Started GuideQEMU 运行部分来自 beyond-GSG 和 hello_world 示例说明。环境要求Zephyr 通过 west 工具管理代码和构建QEMU 则随 Zephyr SDK 一起提供。根据文档的说明宿主机操作系统Ubuntu 24.04 LTS 及以后其他 Linux 发行版需另行参考 Linux 安装文档或 macOS、Windows依赖最低版本CMake 3.28.0、Python 3.12、Devicetree compiler 1.4.6QEMU 支持的目标架构x86qemu_x86板级目标或 ARM Cortex-M3qemu_cortex_m3板级目标。在 Ubuntu 上用apt安装依赖sudo apt install --no-install-recommends git cmake ninja-build gperf \ ccache dfu-util device-tree-compiler wget python3-dev python3-venv python3-tk \ xz-utils file make gcc gcc-multilib g-multilib libsdl2-dev libmagic1注意在 AArch64ARM64系统上gcc-multilib和g-multilib不可用安装时需要把这两个包从列表里去掉。安装后用下面命令核对版本对照上表确认满足最低要求cmake --version python3 --version dtc --version获取源码并安装 SDK以下命令均在 Linux/macOS shell 中执行Windows 的等价命令见 Getting Started Guide。创建并激活 Python 虚拟环境每次新开终端后都需要重新激活否则west找不到或会跑在错误的 Python 环境里python3 -m venv ~/zephyrproject/.venv source ~/zephyrproject/.venv/bin/activate安装 west 并拉取 Zephyr 源码及其模块west update会下载 HAL、库等模块耗时取决于网络pip install west west init -m https://github.com/zephyrproject-rtos/zephyr ~/zephyrproject cd ~/zephyrproject west update安装 Zephyr 的 Python 依赖版本跟随当前检出的 Zephyrwest packages pip --install导出 Zephyr CMake 包之后构建应用时find_package(Zephyr)才能自动定位到这份源码west zephyr-export安装 Zephyr SDK。SDK 包含各架构工具链也包含用于模拟运行 Zephyr 应用的 QEMUcd ~/zephyrproject/zephyr west sdk install如果不用 SDK 自带的 QEMU、而是手动安装的 QEMU需要确保它位于系统PATH中。在 QEMU 中构建并运行 hello_world在 zephyr 仓库根目录~/zephyrproject/zephyr下执行。分两步写的方式来自 beyond-GSG-b qemu_x86指定 x86 模拟板级目标west build -b qemu_x86 samples/hello_world west build -t run也可以一步完成构建并直接运行来自 hello_world 示例说明west build -b qemu_x86 -t run samples/hello_world构建完成后主要产物位于build/zephyr其中build/zephyr/zephyr.elf是应用二进制ELF 格式。如果想换成模拟 ARM Cortex-M3把板级目标改为qemu_cortex_m3west build -b qemu_cortex_m3 -t run samples/hello_world检查运行结果hello_world的源码只有一行输出语句用CONFIG_BOARD_TARGET拼出目标名见 main.cprintf(Hello World! %s\n, CONFIG_BOARD_TARGET);文档给出的示例输出示例结果不是必须逐字一致的判定标准Hello World! x86也就是说在 QEMU 窗口里看到Hello World! x86这一行说明应用已成功运行。退出 QEMU 按Ctrl-a再按x。限制与说明官方文档明确 QEMU 运行路径只覆盖 x86 与 ARM Cortex-M3 两种目标其他架构请用真机烧录west flash或native_sim原生目标。若换用其他示例或板级目标qemu_x86需相应替换为该板名不确定支持哪些板时可在 workspace 内执行west boards查看列表。想继续深入可参考 Getting Started Guide 的 “Next Steps” 部分里面有其他示例、west烧录/调试功能的入口。【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表