开发环境

先按照从源码构建安装工具并构建镜像。所有构建使用完整开发板配置。

查找源码

目录

内容

linux-esp32-s31/

Linux 内核、驱动、设备树和内核配置

opensbi-esp32-s31/

M 模式固件和平台服务

u-boot-esp32-s31/

SPL 和 U-Boot

buildroot/

Buildroot

buildroot-external/

开发板文件、软件包和根文件系统配置

firmware/

无线和 LP 固件

rootfs/

项目用户空间工具的源码

tools/

主机构建工具和测试

docs/

本文档

内核、启动固件、Buildroot 和文档都是 Git 子模块。编辑前,请在相应子模块中创建分支。子模块指南介绍了如何提交这些改动。

修改后重新构建

使用主项目的 Makefile 进行集成构建:

make linux
make rootfs

修改驱动或设备树后,通常需要运行 make linux。更新目标程序、启动脚本或打包的覆盖层后,还需要运行 make rootfs。启动固件的改动使用 make uboot,无线固件的改动则使用无线构建流程。

组件构建树位于 out/,LP 固件在 out/lp/ 构建并暂存到 out/staging/overlay/。生成的 PIE 测试数据位于 out/generated/,不会写入源码覆盖目录。持久配置输入见构建配置。完成修改后运行 make image,再用 make flash-existing-all 部署完整匹配集。

测试改动

烧录前,在主仓库根目录运行主机回归测试:

make check-host

该目标检查布局并运行 tools/tests、tests 和 GPIO shell 回归测试,不获取依赖。先运行 make btstack-source 准备固定的 BTstack 源码;若还需完整固件构建,则用 make fetch 准备全部固定依赖。 它需要 Python、源码子模块、主机 C 编译器,以及源码构建指南中安装的构建工具。

激活下文的文档虚拟环境后,安装 CI 使用的设备树 schema 依赖。项目工具链 安装完成后,可运行包含主机测试、严格文档构建和设备树验证的组合检查:

python -m pip install dtschema==2026.6
make check-fast

check-dt 使用项目交叉编译器。快速检查工作流则安装 gcc-riscv64-linux-gnu,并调用 python3 tools/checks/devicetree.py --cross-compile riscv64-linux-gnu-。两种方式 都会检查 schema、编译后的设备树和合并后的覆盖层。

随后在开发板上检查该功能,包括错误情况和使用后的清理。主机检查无法证明 电气或无线行为正确。HIL 指南介绍了自动化开发板和对端测试。

提交改动时,请说明问题、修复方法和测试方式。如果开发板和接线会影响结果,也应一并说明。

编辑文档

文档仓库有独立的 Python 依赖和构建命令:

cd docs
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
make html

按照编写文档中的本地 HTTP 预览步骤检查结果和搜索功能;该指南还介绍了页面结构和语言风格。运行主仓库的 Make 目标前,请通过 cd .. 返回主仓库。