域格移芯平台模块之open二次开发(一):环境搭建

适用模块:YM310 X09、YM310 X19、YM310 X08、YM310 W09

环境准备

  • windows环境(建议win10或以上)版本
  • 安装python3 及 arm-gcc交叉编译器
  • YM310_X09/X19/W09系列模组以及USB线等硬件环境

代码下载

选择一个文件夹使用git,执行以下指令拉取SDK代码。

c 复制代码
git clone --recursive https://gitee.com/yuge-info/yopen.git 

注:必须添加 --recursive 参数, 因为有bsp子仓库。

打印如下

完成后出现yopen文件夹,内容如下

其中,doc目录中包含开发指南、模块GPIO表、API接口说明等文档。

《YOPEN 开发指南》中介绍了软件架构、软件目录、系统启动流程、主工程文件、demo介绍、代码编译、RAM空间查询、Flash空间查询、Flash空间调整、新增代码模块、API接口、bsp_moudule功能差异、软件调试、FOTA升级、死机问题分析等内容。

编译环境

编译环境依赖python3 和 arm-gcc交叉编译器。

python3

已经验证过的版本有python 3.12.5、3.8.5,可以到python官网下载

win10及以上版本可以选择3.12.5。

下载好exe后双击安装,注意勾选"Add python.exe to PATH",以便程序自动配置环境变量,否则编译的时候会出现"Could NOT find Python3 ......"的错误。

之后选择"Install Now",或按照需要更换安装目录。

安装成功后,在cmd命令窗口发送 python -V 可以核对版本

交叉编译器

  1. 下载交叉编译器gcc-arm-none-eabi-10-2020-q4-major,ARM官方下载链接

  2. 编译器解压到C盘,修改gcc-arm-none-eabi-10-2020-q4-major文件名为gcc,以便CMake可以通过c:\gcc\bin\arm-none-eabi-gcc访问编译。

    c:\gcc\bin的目录结构如下

编译

在SDK目录下双击"cmd"打开命令行,输入build.bat,选择需要编译的模块

对应关系如下:

1 YM310_W09C.A60 ------ W09 4+4,普通功能

2 YM310_W09C.M60 ------ W09 4+4,A60+支持IMS短信

3 YM310_W09S.H60 ------ W09 8+8

4 YM310_X08C.S60 ------ X08 1+2,基础数传

5 YM310_X08C.S61 ------ X08 1+2,S60+USB口支持基础AT

6 YM310_X08C.W60 ------ X08 1+2,S61+wifiscan

7 YM310_X08S.U62 ------ X08 1+4

8 YM310_X09C.S60 ------ X09 1+2,基础数传

9 YM310_X09C.S61 ------ X09 1+2,S60+USB口支持基础AT

10 YM310_X09C.W60 ------ X09 1+2,S61+wifiscan

11 YM310_X09S.U62 ------ X09 1+4

12 YM310_X19C.S60 ------ X19 1+2,基础数传

13 YM310_X19C.S61 ------ X19 1+2,S60+USB口支持基础AT

14 YM310_X19C.W60 ------ X19 1+2,S61+wifiscan

15 YM310_X19S.U62 ------ X19 1+4

如当前需要在W09 ACNCX上跑demo,则BSP模块选择1;编译的项目,选择11。

在短暂的等待后将看到编译成功的提示。

上滚打印日志可以看到Flash空间情况,下图红框中内容为ROM剩余大小,会随着代码的差异发生改变。

生成的烧录文件位于out目录对应项目下,烧录到模块中可验证相关功能。

编译错误排查记录

此时不应有|

原因:

setlocal enabledelayedexpansion + 管道的组合在这台机器的环境变量下被误解析了。

处理方法:

bsp\EC7XX\kernel\PLAT\GccBuild_ec718pm_app.bat (若编译的其他项目则为对应的.bat)的 2-4行改为

bat 复制代码
set "__MSYS_BIN=%~dp0tools\msys64\usr\bin"
set "__MSYS_CHK=%PATH:msys64\usr\bin=%"
@if "%__MSYS_CHK%"=="%PATH%" set "PATH=%__MSYS_BIN%;%PATH%"

'xxx' 不是内部或外部命令,也不是可运行的程序

处理方法:

bsp\EC7XX\kernel\PLAT\GccBuild_ec718pm_app.bat(若编译的其他项目则为对应的.bat)文件行尾从 LF(\n,Unix 格式)转成 CRLF(\r\n,Windows 格式)。

原因:

cmd.exe 解析 .bat 是靠 \r\n 分行的。遇到纯 \n 的文件,它把整 900 行当成一整行来处理,再按空格拆词------echo 被拆成 e+cho→'cho',前面那段变成 'et',所以会看到一堆 'et' 'cho' 'ho' 'ho' 的不识别指令。转成 CRLF 后,cmd 正常分行,错误消失。

相关推荐
河北品高电子安安3 小时前
智慧井盖:物联网技术赋能城市地下管网安全监测
大数据·物联网·安全
hongmai6668886 小时前
聊聊ESP32-C3-WROOM-02-N8这颗8MB Flash的RISC-V模组
笔记·嵌入式硬件·物联网·智能路由器·risc-v
芯岭技术16 小时前
OM6625A芯片使用PY32 link烧录程序流程操作介绍
嵌入式硬件·物联网
microrain18 小时前
从监控孤岛到视联一体:SagooIoT视频监控中心的设计实践
物联网·golang·开源·sagooiot
慧都小妮子21 小时前
ThingsBoard PE 智慧灌溉:实现精准灌溉与水资源优化利用
物联网·mqtt·智慧农业·iot·规则引擎·thingsboard·精准灌溉
hongmai66688821 小时前
耐高温小钢炮:ESP32-C3-MINI-1U-H4模组选型分享
笔记·单片机·嵌入式硬件·物联网·risc-v
sunywz21 小时前
【从零搭建物联网智能充电桩系统】2、自定义二进制协议:设备为什么不用 JSON?
python·物联网·json
乐橙开放平台1 天前
老旧小区监控事件驱动派单:基于 setMessageCallback 的 msgType 分级与工单闭环实现
后端·物联网·音视频
JNX_SEMI1 天前
Hi5000Q/H 6.5~75V宽输入——与H5227A完全对等,无缝适配现有电源方案-聚能芯-智芯官方授权一级代理
驱动开发·单片机·嵌入式硬件·物联网·硬件工程
sunywz1 天前
【从零搭建物联网智能充电桩系统】6、用户服务与钱包:微信登录、JWT 鉴权与乐观锁并发控制
物联网