# zephyr_ztest **Repository Path**: weilaidb/zephyr_ztest ## Basic Information - **Project Name**: zephyr_ztest - **Description**: zephyr ztest eg - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-24 - **Last Updated**: 2026-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # zephyr_ztest #### 介绍 zephyr ztest eg - Zephyr RTOS ztest 框架示例工程 支持 RISC-V QEMU 模拟器! #### 软件架构 软件架构说明 - 基于 Zephyr RTOS 3.7.1 - 使用 ztest 单元测试框架 - 支持多种硬件架构:RISC-V, ARM, X86, ARC 等 - 构建系统:CMake + West #### 安装教程 ##### 1. 基础依赖安装 **Ubuntu/Debian:** ```bash sudo apt-get update sudo apt-get install cmake python3 python3-pip git wget pip3 install west ``` **Arch Linux:** ```bash sudo pacman -S cmake python python-pip git base-devel pip3 install west ``` ##### 2. RISC-V 工具链安装 (推荐) **方案 A: Zephyr SDK (完整功能)** ```bash # 下载 Zephyr SDK cd /tmp wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.3/zephyr-sdk-0.16.3_linux-x86_64_minimal.tar.xz # 解压并安装 tar xf zephyr-sdk-0.16.3_linux-x86_64_minimal.tar.xz cd zephyr-sdk-0.16.3 ./setup.sh # 选择 RISC-V 支持 # 设置环境变量 export ZEPHYR_TOOLCHAIN_VARIANT=zephyr export ZEPHYR_SDK_INSTALL_DIR=$PWD ``` **方案 B: GNU RISC-V 工具链 (轻量级)** ```bash # Ubuntu/Debian sudo apt-get install gcc-riscv64-unknown-elf gdb-multiarch qemu-system-misc # 设置环境变量 export ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb export CROSS_COMPILE=riscv64-unknown-elf- ``` ##### 3. 克隆项目 (如果是 Git 仓库) ```bash cd ~/work/git git clone zephyr_ztest cd zephyr_ztest ``` #### 使用说明 ##### 快速开始 - RISC-V QEMU **方法 1: 使用构建脚本 (最简单)** ```bash cd ~/work/git/zephyr_ztest # 构建并运行 32 位 RISC-V ./build_riscv.sh -r # 构建 64 位 RISC-V ./build_riscv.sh -b qemu_riscv64 # 清理并重新构建 ./build_riscv.sh -c -r # 查看帮助 ./build_riscv.sh -h ``` **方法 2: 使用 Makefile** ```bash cd ~/work/git/zephyr_ztest # 加载 Zephyr 环境 source zephyr-3.7.1/zephyr-3.7.1/zephyr-env.sh # 设置工具链 export ZEPHYR_TOOLCHAIN_VARIANT=zephyr # 构建 32 位 RISC-V make qemu-riscv32 # 构建 64 位 RISC-V make qemu-riscv64 # 在 QEMU 中运行 cd build west debug # 或使用 GDB 调试 west debugserver # 在另一个终端: # riscv64-zephyr-elf-gdb build/zephyr/zephyr.elf # (gdb) target remote :12345 ``` **方法 3: 直接使用 CMake** ```bash cd ~/work/git/zephyr_ztest # 加载环境 source zephyr-3.7.1/zephyr-3.7.1/zephyr-env.sh export ZEPHYR_TOOLCHAIN_VARIANT=zephyr # 配置和构建 rm -rf build cmake -B build \ -S zephyr-3.7.1/zephyr-3.7.1/tests/ztest/base \ -DBOARD=qemu_riscv32 \ -DZEPHYR_BASE=$(pwd)/zephyr-3.7.1/zephyr-3.7.1 cd build make # 运行 west debug ``` ##### 其他架构支持 ```bash # X86 QEMU make BOARD=qemu_x86 ztest # ARM Cortex-M3 QEMU make BOARD=qemu_cortex_m3 ztest # 本地 POSIX (无需交叉编译) make BOARD=native_posix ztest ``` ##### 常用命令 ```bash # 查看所有可用目标 make help # 查看 RISC-V 特定开发板 make boards-riscv # 清理构建 make clean # 设置开发环境 make setup-riscv ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 支持的 RISC-V 开发板 - **qemu_riscv32** - 32 位 RISC-V QEMU Virt 机器 - **qemu_riscv64** - 64 位 RISC-V QEMU Virt 机器 - 更多开发板请参考:`make boards-riscv` #### 故障排查 ##### 问题:找不到 Zephyr SDK **解决方案:** ```bash export ZEPHYR_SDK_INSTALL_DIR=/path/to/zephyr-sdk export ZEPHYR_TOOLCHAIN_VARIANT=zephyr ``` ##### 问题:QEMU 未找到 **解决方案:** ```bash # Ubuntu/Debian sudo apt-get install qemu-system-misc # Arch Linux sudo pacman -S qemu-system-riscv ``` ##### 问题:编译失败 **解决方案:** 1. 确保已加载 Zephyr 环境:`source zephyr-3.7.1/zephyr-3.7.1/zephyr-env.sh` 2. 检查工具链是否正确安装:`riscv64-zephyr-elf-gcc --version` 3. 查看详细文档:`BUILD_GUIDE_RISCV.md` #### 文档 - [详细构建指南](BUILD_GUIDE.md) - 通用构建指南 - [RISC-V 专用指南](BUILD_GUIDE_RISCV.md) - RISC-V QEMU 详细说明 - [Zephyr 官方文档](https://docs.zephyrproject.org/) - [ztest 框架文档](https://docs.zephyrproject.org/latest/develop/test/index.html) #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)