(域格)环境搭建和编译

编译环境依赖的工具,需要提前安装好:

这个 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的作用

  1. 执行 CMake 构建脚本(核心作用)

YOpen SDK 的构建系统基于 CMake ,而很多关键的构建逻辑、功能检测和自定义命令是通过 CMake 的 Python 脚本 实现的。

  • 作用 :CMake 在执行 build.bat 时,会调用 Python 来执行一些辅助的构建逻辑,例如生成构建文件、检测系统环境、处理文件路径等。

  • 没有 Python :CMake 会报错,无法完成 Configuring 步骤,直接导致编译失败。

  1. 运行 SDK 自带的工具脚本

YOpen 官方提供了大量的 .py 脚本 放在 toolsbsp/.../tools 目录下,用于自动化开发流程:

  • 固件打包 / 镜像制作 :如你之前遇到的 lfsutil 相关依赖,很多 Windows 版本的工具链是 Python 脚本封装。

  • 文件系统预处理:在生成最终固件(.bin)前,Python 脚本用于处理文件列表、生成缓存、校验数据。

  • 代码格式化 / 检查:用于开发期间的代码风格检查。

  1. 驱动应用开发(Python 应用层)

YM310 模组支持 Python 应用开发(基于 OpenCPU 架构)。

  • 作用:虽然底层固件是 C 语言编写的,但开发者可以通过 Python 脚本在模组上实现业务逻辑(如 MQTT 通信、AT 指令交互、硬件控制)。

  • 安装 Python:是为了能在 PC 上编写、调试运行在模组端的 Python 代码,或通过串口与模组交互。

  1. 版本兼容性与避坑(为什么推荐 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 交叉编译器(核心编译工具)

  1. 下载官方推荐的 gcc-arm-none-eabi-10-2020-q4-major 版本(ARM 官方链接),解压到纯英文路径(如 DC:gcc)。
  2. 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)支持两种烧录方式:

  1. 烧录 .elf/.bin(原生程序)

  2. 烧录 打包后的完整镜像(由 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 解压后的完整镜像

相关推荐
m0_6028577642 分钟前
如何提升SQL存储过程逻辑复用_封装通用存储过程函数
jvm·数据库·python
Rabitebla42 分钟前
【C++】string 类:原理、踩坑与对象语义
linux·c语言·数据结构·c++·算法·github·学习方法
傻啦嘿哟2 小时前
如何在 Python 中使用 colorama 库来给输出添加颜色
开发语言·python
forEverPlume2 小时前
mysql如何实现高可用集群架构_基于MHA环境搭建与部署
jvm·数据库·python
geovindu3 小时前
go: Visitor Pattern
开发语言·设计模式·golang·访问者模式
宣宣猪的小花园.3 小时前
C语言重难点全解析:内存管理到位运算
c语言·开发语言·单片机
方安乐7 小时前
python之向量、向量和、向量点积
开发语言·python·numpy
三品吉他手会点灯8 小时前
C语言学习笔记 - 20.C编程预备计算机专业知识 - 变量为什么必须的初始化【重点】
c语言·笔记·学习
zh1570238 小时前
JavaScript中WorkerThreads解决服务端计算瓶颈
jvm·数据库·python
小小小米粒9 小时前
Collection单列集合、Map(Key - Value)双列集合,多继承实现。
java·开发语言·windows