# yopen **Repository Path**: yuge-info/yopen ## Basic Information - **Project Name**: yopen - **Description**: 该开源项目用于YM310_X09系列模块二次开发,针对AT软件无法满足要求,或者想省去MCU单片机的客户而设计的 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 3 - **Created**: 2025-03-12 - **Last Updated**: 2025-12-10 ## Categories & Tags **Categories**: hardware **Tags**: None ## README

# 项目介绍 该开源项目用于YM310_X09/X19系列模块二次开发,针对AT软件无法满足要求,或者想省去MCU单片机的客户而设计的。 # 如何开发 ## 环境准备 * windows环境(建议win10或以上)版本 * 安装python3 * arm-gcc交叉编译器 * YM310_X09/X19系列模组以及USB线等硬件环境 ## 开发工具 * 固件下载工具([FlashTools](bsp/EC7XX/kernel/PLAT/tools/FlashTools_V4.1.16_041028.zip)) * 抓日志工具([EPAT](bsp/EC7XX/kernel/PLAT/tools/EPAT_V1.3.265.576.zip)) ## 安装交叉编译器 * 下载交叉编译器gcc-arm-none-eabi-10-2020-q4-major,[ARM官方下载链接](https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-win32.zip)。 * 编译器解压到C盘,修改`gcc-arm-none-eabi-10-2020-q4-major`文件名为`gcc`,确保CMake可以通过`c:\gcc\bin\arm-none-eabi-gcc`访问到编译,目录结构如下: ``` C:\gcc\bin 的目录 2024/07/31 12:15 780,288 arm-none-eabi-addr2line.exe 2024/07/31 12:15 802,304 arm-none-eabi-ar.exe 2024/07/31 12:15 1,377,792 arm-none-eabi-as.exe 2024/07/31 12:15 2,112,512 arm-none-eabi-c++.exe 2024/07/31 12:15 777,728 arm-none-eabi-c++filt.exe 2024/07/31 12:15 2,110,464 arm-none-eabi-cpp.exe 2024/07/31 12:15 34,304 arm-none-eabi-elfedit.exe ... ``` ## 编译 打开cmd命令行,运行`build.bat`脚本,编译成功会显示如下字段 ```bash ####################################################################### ## ######## ### ###### ###### ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ######## ## ## ###### ###### ## ## ######### ## ## ## ## ## ## ## ## ## ## ## ## ## ## ###### ###### ####################################################################### build successfully [100%] Built target YOpenApp ``` ## 选择工程编译 `build.bat`脚本支持通过添加参数,编译不同`bsp_module`和`project`项目,参数格式如下: ```bash ## 编译参数: build.bat [bsp_module] [project] ## 举例: build YM310_X09C.S60 demo build YM310_X09S.U62 demo ``` * 可选`bsp_module`: |bsp_module | 对应脚本(bsp/EC7XX目录) | 功能描述 | 硬件系列| |:----------- | :----- | :--------------------- | :--------------------- | |YM310_X08C.S60|YM310_X08C.S60.cmake|基础数传|X08C系列| |YM310_X08C.S61|YM310_X08C.S61.cmake|YM310_X08C.S60基础上,增加了USB口以及基础AT指令支持|X08C系列| |YM310_X08C.W60|YM310_X08C.W60.cmake|YM310_X08C.S60基础上,增加WIFISCAN功能|X08C系列| |YM310_X09C.S60|YM310_X09C.S60.cmake|基础数传|X09C系列| |YM310_X09C.S61|YM310_X09C.S61.cmake|YM310_X09C.S60基础上,增加了USB口以及基础AT指令支持|X09C系列| |YM310_X09C.W60|YM310_X09C.W60.cmake|YM310_X09C.S60基础上,增加WIFISCAN功能|X09C系列| |YM310_X19C.S60|YM310_X19C.S60.cmake|基础数传|X19C系列| |YM310_X19C.S61|YM310_X19C.S61.cmake|YM310_X19C.S60基础上,增加了USB口以及基础AT指令支持|X19C系列| |YM310_X19C.W60|YM310_X19C.W60.cmake|YM310_X19C.S60基础上,增加WIFISCAN功能|X19C系列| |YM310_X08S.U62|YM310_X08S.U62.cmake|YM310_X08C.S61基础上, USB网卡,WIFI SCAN, SMS等功能,FLASH空间增加2MB|X08S系列| |YM310_X09S.U62|YM310_X09S.U62.cmake|YM310_X09C.S61基础上, USB网卡,WIFI SCAN, SMS等功能,FLASH空间增加2MB|X09S系列| |YM310_X19S.U62|YM310_X19S.U62.cmake|YM310_X19C.S61基础上, USB网卡,WIFI SCAN, SMS等功能,FLASH空间增加2MB|X19S系列| |YM310_W09C.A60|YM310_W09C.A60.cmake|全功能|W09C系列| |YM310_W09S.A60*|YM310_W09S.A60.cmake|全功能+VOLTE通话|W09S系列| * 可选`project`: |project | 对应脚本(project目录)| 功能描述 | |:----------- | :------ | :--------------------- | |demo|demo.cmake|yopen提供的api接口的使用示例| |mbedtls|mbedtls.cmake|mbedtls功能组件| |mqtt|mqtt.cmake|mqtt功能组件| |ai_xxx|ai_xxx.cmake|ai功能组件| |aliyun|aliyun.cmake|接入aliyun| |audio_loop|audio_loop.cmake|音频循环播放| |gps|gps.cmake|GPS定位| |httpclient|httpclient.cmake|http客户端demo| |lbs|lbs.cmake|基站定位| |lcd|lcd.cmake|lcd显示| |lwm2m|lwm2m.cmake|lwm2m协议demo| |mqtt|mqtt.cmake|mqtt协议demo| |norflash|norflash.cmake|norflash驱动| |ntp|ntp.cmake|ntp协议demo| |opus|opus.cmake|opus音频编码解码| |pipe|pipe.cmake|读写管道demo| |player|player.cmake|音频播放demo| |recorder|recorder.cmake|录音demo| |sd|sd.cmake|sd卡驱动| |ui|ui.cmake|ui组件| |websocket|websocket.cmake|websocket协议demo| |wifilocate|wifilocate.cmake|wifi定位| |ws2812|ws2812.cmake|ws2812 led驱动| ## 下载固件 通过`FlashTools`工具下载`out\YOpenApp.binpkg`文件,相关下载操作步骤参考`FlashTools`工具说明 ## 查看运行效果 通过`EPAT`日志工具,抓取`demo_hello`工程运行日志,可以看到运行结果如下:一秒打印一次`hello _demo_thread cnt-x` ![image](./doc/img/demo_hello_log.png) # 工程介绍 工程代码用cmake进行构建,make进行编译,工程相关配置可以参考`project\demo_hello.cmake`工程文件。 ## 代码目录介绍 |目录 | 介绍 | |:----------- | :---------------------:| |api|功能api接口| |bsp|底层代码,适配不同硬件(一般不需要了解)| |components|功能组件,例如http,mqtt,json等| |demo|样例代码,api或者功能组件的代码样例| |doc|帮助文档,api文档或者工具使用说明等| |project|工程构建文件,每个文件表示一个代码工程| |out|中间文件,编译自动产生| |tools|工程构建过程中使用的工具或脚本集合| ## 入口函数 应用代码入口函数`app_main`位于`bsp\EC7XX\app_main.c`文件中。 ## API接口 接口声明在`api`目录头文件中,详细说明在[Open_API文档中](doc/YOpen_API.chm)。 ## 可用空间 |bsp_module | project| RAM* | ROM* | FS|FOTA| |:----------- | :----- | :----- | :--------------------- | :--------------------- |:--------------------- | |YM310_X09C.S60
YM310_X19C.S60
YM310_X08C.S60|demo|334KB| 330KB |48KB|192KB| |YM310_X09C.S61
YM310_X19C.S61
YM310_X08C.S61|demo|331KB|154KB|48KB|192KB| |YM310_X09S.U62
YM310_X19S.U62
YM310_X08S.U62|demo|328KB|813KB|976KB|464KB| |YM310_W09C.A60|demo|3416KB| 766KB |848KB|272KB| > 注意: * RAM空间为实际malloc可用空间。所以不能全部用完,否则会导致malloc失败,出现系统异常 * ROM空间为实际代码剩余空间 * ROM和RAM大小统计,均基于`project/demo`项目,不同project会有差异。 ## 如何添加自己的代码工程 添加之前需要简单了解CMake的基本语法,相关添加步骤可以参考doc目录下的[增加mqtt工程.md](doc/增加mqtt工程.md)文件。 # 开发指南 详细开发指南参考:[doc/YOPEN 开发指南](doc/YOPEN%20开发指南.pdf)