编译环境依赖的工具,需要提前安装好:
这个 SDK 的编译强依赖 4 个核心工具,任意一个缺失 / 没添加到系统 PATH,都会导致脚本执行直接报错退出:
| 依赖 | 验证方式(cmd 中执行) | 修复方案 |
|---|---|---|
| Python3.7+ | python --version |
安装 Python3,安装时必须勾选「Add Python to PATH」,安装完成重启 cmd |
| CMake | cmake --version |
安装 CMake,安装时勾选「Add CMake to the system PATH for all users」,重启 cmd |
| ARM-GCC 交叉编译器 | arm-none-eabi-gcc --version |
安装 arm-none-eabi-gcc(10.3 + 版本),把安装目录的bin文件夹添加到系统 PATH,重启 cmd |
| Make 工具(MinGW) | make --version |
安装 MinGW,把安装目录的bin文件夹添加到系统 PATH,重启 cmd |
安装python3(https://www.python.org/ftp/python/3.12.5/python-3.12.5-amd64.exe)
安装CMake(
https://cmake.org/download/
)
安装ARM-GCC交叉编译器()
Make工具()
安装python3时需要注意:
如果当初安装时必须要勾选「Add Python to PATH」,配置环境变量
PYthon3的作用
- 执行 CMake 构建脚本(核心作用)
YOpen SDK 的构建系统基于 CMake ,而很多关键的构建逻辑、功能检测和自定义命令是通过 CMake 的 Python 脚本 实现的。
-
作用 :CMake 在执行
build.bat时,会调用 Python 来执行一些辅助的构建逻辑,例如生成构建文件、检测系统环境、处理文件路径等。 -
没有 Python :CMake 会报错,无法完成
Configuring步骤,直接导致编译失败。
- 运行 SDK 自带的工具脚本
YOpen 官方提供了大量的 .py 脚本 放在 tools 或 bsp/.../tools 目录下,用于自动化开发流程:
-
固件打包 / 镜像制作 :如你之前遇到的
lfsutil相关依赖,很多 Windows 版本的工具链是 Python 脚本封装。 -
文件系统预处理:在生成最终固件(.bin)前,Python 脚本用于处理文件列表、生成缓存、校验数据。
-
代码格式化 / 检查:用于开发期间的代码风格检查。
- 驱动应用开发(Python 应用层)
YM310 模组支持 Python 应用开发(基于 OpenCPU 架构)。
-
作用:虽然底层固件是 C 语言编写的,但开发者可以通过 Python 脚本在模组上实现业务逻辑(如 MQTT 通信、AT 指令交互、硬件控制)。
-
安装 Python:是为了能在 PC 上编写、调试运行在模组端的 Python 代码,或通过串口与模组交互。
- 版本兼容性与避坑(为什么推荐 3.12.5?)
-
版本匹配:SDK 中的脚本可能使用了 Python 3.12 的新特性或兼容该版本的库。
-
避免报错 :如果安装过高(如 3.13+)或过低(如 3.8 以下)的 Python 版本,可能会出现语法报错 或库函数不兼容 ,导致
build.bat闪退或执行失败。 -
你的情况 :你之前安装的 Python 3.12.5 是完全符合官方要求的,这是好事,说明环境准备这一步已经做对了。
总结
安装 Python3 是 "刚需" 。它不仅是为了写代码,更是整个 编译构建链(Build Chain) 的核心运行环境。没有它,build.bat 无法完成最后的链接和打包步骤
安装CMake时需要注意:
下载 CMake 3.20+ 版本(官网 https://cmake.org/download/),安装时务必勾选「Add CMake to the system PATH for all users」
CMake的作用:
你写的 C 代码(比如 demo 里的业务逻辑、httpclient 组件),要变成模组能运行的二进制固件,需要经历:
源码 → 编译(arm-none-eabi-gcc)→ 链接 → 打包 → 生成固件
这个过程如果手动敲命令,会极其复杂(上百个源文件、依赖关系、编译参数、平台适配),CMake 就是帮你自动搞定这一切的「总指挥」。
| 没有 CMake | 有 CMake |
|---|---|
| 手动写几十上百行编译命令,极易出错 | 一键执行 build.bat,自动完成编译 |
| 组件依赖、平台适配全靠手动维护 | 自动管理依赖,适配 YM310 模组 |
| 换环境、换模组需要重写所有命令 | 跨平台、跨模组复用同一套构建逻辑 |
| 编译报错难以定位,排查成本极高 | 结构化报错日志,精准定位问题(比如你之前的组件缺失) |
安装CMake时需要注意:
步骤 1:配置 ARM-GCC 交叉编译器(核心编译工具)
- 下载官方推荐的
gcc-arm-none-eabi-10-2020-q4-major版本(ARM 官方链接),解压到纯英文路径(如DC:gcc)。 - 将
gcc\bin目录(如C:gcc\bin)添加到系统环境变量 Path :- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」→ 编辑系统变量
Path,添加上述路径。
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」→ 编辑系统变量
各种工具都扮演着什么角色
- Python:给 CMake 提供脚本运行环境,执行打包、环境检测等辅助逻辑
- arm-none-eabi-gcc:真正的编译器,CMake 负责调用它,不用你手动敲命令
- make:执行 CMake 生成的 Makefile,完成实际的编译、链接步骤
- CMake:整个流程的「总指挥」,把这些工具串起来,自动化完成所有操作
解决gen_fs.py 在 Windows 环境跑不通问题
绕开 Windows 环境下不兼容的 gen_fs.py 工具,因为gen_fs.py 是给 Linux 环境写的,在 Windows 上跑不起来!所以要在yopen-main目录下讲 fs 的代码注释掉
你的芯片(YM310 / EC7XX)支持两种烧录方式:
-
烧录 .elf/.bin(原生程序)
-
烧录 打包后的完整镜像(由 gen_fs.py 生成)
✅ 方式 1:直接烧录 .elf/.bin → 完全可以用!
你现在编译出来的:
plaintext
ap_yopen_app.elf
ap_yopen_app.bin
**这两个文件,芯片可以直接识别、直接运行!**不需要任何打包!
适用场景:
-
开发调试
-
跑功能
-
测试代码
-
99% 的日常开发
你现在做开发,完全够用!
✅ 方式 2:用 gen_fs.py 打包 → 生成 "出厂完整镜像"
它的作用只有一个:
生成出厂量产固件
包含:
-
分区
-
文件系统
-
启动参数
-
版本信息
-
加密 / 签名
适用场景:
-
工厂量产
-
整机发货
-
OTA 升级

最后以管理员身份在CMD命令行中测试,到当前目录下输入build.bat YM310_X09S.U62 demo

显示编译成功,会在yopen-main生成一个out文件

优先烧录 DEMO.elf,量产用 DEMO_FACTORY_*.zip 解压后的完整镜像