合作伙伴工作台
注册

嵌入式软件开发

本节面向有嵌入式开发经验的技术人员,可根据指导进行二次开发。有电信配套开发板(已烧录好配套程序)的体验客户可跳过该步骤。

开始进入软件开发前,请先熟悉NB开发板相关AT指令文档,从天翼物联网平台(AIoT)+下载代码源文件(https://www.ctwing.cn/xzzq/573)。

代码结构介绍

1.下载开发板程序文件skit_ctnb_st.zip,解压文件到自己工作目录中(建议直接解压在根目录下,如:D:\skit_ctnb_st);

文件目录结构如下:

bsp:存放BSP驱动文件(如LED,电机,温湿度传感器等),共用工具类文件(如MD5,字符串处理函数等);

Drivers:存放STM32平台的HAL库文件和CMSIS接口文件;

MDK-ARM:存放Keil工程启动文件;

RTOS: 存放操作系统RTOS相关文件(如OS线程,日志等);

system:存放main函数入口文件和是STM32系统接口文件(如中断,系统时钟初始化、HAL初始化等);

user:存放用户线程文件(如 与通信模组的AT操作和业务实现函数等);

2.建议使用 Keil5打开工程并编译开发板程序。

工程架构介绍:

profile: 存放编解码文件;

user:业务实现的具体存放区,目前里面已经实现了nb_thread,bsp_thread,

ctnb_thread等,如果用户想创建自己的业务逻辑可以参考这里的thread。

BSP: 存放BSP驱动文件(如LED,电机,温湿度传感器、GPIO、SPI,IIC,红外传感器、BSP通用接口等);

util:共用工具类文件(如MD5,字符串处理函数等);

FlexShell:命令行实现的具体文件,用户想自己创建测试命令,可以在FlesShellUser.c文件里追加。

log:日志打印文件,用户可以选择UART或者RTT进行日志数据的打印。

thread-os:一个基于线程的RTOS。用户不需要关心该文件。

HAL:st公司提供的库文件。

system:存放main函数入口文件和是STM32系统接口文件(如中断,系统时钟初始化、HAL初始化等);

system_CMSIS:系统时钟配置文件。

startup:stm32启动文件。如果用户想修改栈大小,可以修改该文件

开发开发板程序

基于NB开发板的样例程序通过串口使用AT指令与NB模组通信,所有AT指令集参数说明详见《Quectel_BC35-G&BC28&BC95 R2.0_AT_Commands_Manual_V1.5》

1.连接开发板,搭建开发环境;

2.产品在平台创建完成后,用户获取并保存如下所需信息:

a.接入IP地址(hostIP),接口端口(hostPort),

b.服务ID(用于设置数据上报或下行的DatasetID);

备注:

属性和服务可以使用导入物模型(从其它产品导出的物模型)方式快速生成,创建成功后支持导出物模型(供其它产品使用)和生成设备侧编解码文件功能;

3.获取代码包,使用Keil软件打开代码工程;

主要关注user目录中的userconfig.h和profile目录中的app_aep_profile.c。

userconfig.h用于配置平台接入参数。

app_aep_profile.c是具体应用文件(如电机控制等)。

如果需要使用自定义物模型编解码代码,请使用前面生成的设备侧编解码文件替换profile目录中的两个文件:

AepServiceCodes.c   //编解码源代码文件

AepServiceCodes.h   //编解码头文件

并且修改app_aep_profile.c中的参数调用和对应的物模型编解码函数。

4.修改接入配置信息(userconfig.h)

编译开发板程序

建议使用 Keil5连接开发板进行代码编译(详细参考官方软件使用说明),确认编译结果没有error出现,确认编译成功。

下载开发板程序

建议使用Keil5 或stm32 programmer软件编译成功后点击下载程序文件到开发板中(详细参考官方软件使用说明)。


这篇文档是否帮助您解决了问题?
如果您愿意进一步帮助我们改进文档 ,请留下您的联系方式。