电话:13959192997,微信同电话,如下文件已存百度网盘。
一、SDK简介
本章针对SDK开发包、技术架构、特性等方面进行简要介绍。
2.1. SDK开发包
OpenCPU SDK开发包内含交叉编译链、必要库文件和头文件以及示例程序等;解压缩后参考说明文档完成应用程序编写、编译并生成软件版本文件烧录进模组,即可运行。
SDK开发包文件以压缩文件形式提供,具体型号及版本请以实际为准。
Figure 1. SDK开发包文件示例
SDK开发包文件解压缩后各目录文件如下图所示。
Figure 2. 目录信息分解说明
2.2. 技术架构
OpenCPU整体软件系统架构如下图所示,各型号模组实际支持功能请以配套SDK版本为准。
2.3. SDK特性
SDK开发包具备以下特性:
▪ 可支持同系列多个子型号模组;
▪ 可通过编译参数进行模组型号选择;
▪ 版本包含详细功能示例,可通过串口输入命令进行测试。
二、编译环境
本章针对OpenCPU编译环境进行介绍,以协助用户快速完成环境搭建,生成OpenCPU固件。
3.1. 编译环境要求
OpenCPU SDK开发包,仅支持在Windows 7/Windows 10 X64环境下开发和编译,需预安装python3.7以上版本,安装完python后,打开命令行执行pip install scons安装scons工具。
3.2. 搭建编译环境
OpenCPU SDK开发包自带交叉编译工具,使用前解压开发包至任意非中文路径下即可进行编译。请注意解压路径不能包含中文、空格及“&”符号。
3.3. 编译SDK
SDK编译命令为scons
执行以下步骤编译SDK:(步骤描述以MN316A版本为例。)
1. 确认模组硬件版本。
2. 在SDK根目录下,打开命令行执行scons -c清除历史编译信息。
3. 执行scons启动编译。
如无编译错误,可在out/image/目录下获取编译生成的软件版本。
三、SDK开发指导
本章针对OpenCPU代码编写、头文件和库文件添加等操作进行说明。
4.1. 用户入口函数
用户入口函数cm_opencpu_entry()会在系统初始化过程中被调用;用户可在此函数中执行必要的初始化、用户线程创建等操作。
Note:在携带操作系统的情况下,用户入口函数阻塞会造成系统无法工作。
4.2. 示例程序说明
OpenCPU程序示例覆盖大部分API,用户通过cm_demo_main.c中的命令数组可获取API示例程序的入口函数;通过串口发送命令即可测试示例代码。
测试示例代码前需下载默认的demo版本固件至模组中。
参照以下步骤完成示例代码测试:
1. 模组开机。
开机后,串口会打印如下信息。不同型号模组及OpenCPU SDK版本打印信息存在差异,请以实际为准。
4.3. 添加源文件
本节以在custom/路径下添加源文件和将custom路径加入头文件搜索路径为例说明操作步骤。
参照以下步骤添加源文件:
1. 打开custom/SConscript
2. 在ram_source_files列表中增加的源文件,其代码段运行于内存中;若模组支持XIP模式,则可在flash_source_files列表中增加以XIP模式运行的源文件,代码段运行于Flash中。
3. 在public_incs列表中增加公共头文件,private_incs列表中增加私有头文件。
4. 可在cpp_defines列表中添加模块私有的宏定义,仅对本模块生效。
4.4. 添加库文件
本节以在prebuild/libs路径下添加libxxx.a库文件为例说明操作步骤。
参照以下步骤添加库文件:
1. 打开tools/scons/EnvironConfig.py。
2. 在BuildConfig->LIBS列表中添加xxx变量。
3. 在BuildConfig->LIBPATH列表中添加libxxx.a的存放路径。
4.5. 制作库文件
参照以下步骤制作库文件:
1. 确定需要打包的目标文件,如out\obj\examples\adc\src\cm_demo_adc.o和out\obj\examples\mqtt\src\cm_demo_mqtt.o
2. 在命令行环境下,进入SDK根目录,选择SDK中的ar工具,执行打包命令。如”tools/toolchain/gcc-armnone-eabi/bin/arm-none-eabi-ar.exe” qc liboc_demo.a out/obj/examples/adc/src/
cm_demo_adc.o out/obj/examples/mqtt/src/cm_demo_mqtt.o。
根目录下生成liboc_demo.a库文件,该文件可替代上述两个目标文件参与编译链接。