1、系统介绍:
图1系统软件结构
上图是STEVAL-STLKT01V1和Nucleo Boards开发套件系统结构图,硬件部分由BlueNRG即BLE蓝牙芯片、STM32L476、LSM6DS3H加速度计+陀螺仪、LSM303AGR加速度计+D磁力计、LPS22HB气压计、MP34DT04数字麦克风、HTS221温湿度传感器等组成,上位机软件部分提供了底层驱动API接口、各种芯片中间层的协议库、以及顶层简单的应用实例,IOS和Android都有对应的SDK。
2、Flash管理:
STM32F476的flash除了存储代码外,还可以存储开源MEMS和Audio的激活许可证,并且允许固件更新。
3、 BLUEMICROSYSTEM2软件包文件夹结构:
图3 文件结构
里面有文档文件夹、驱动文件夹、中间层协议库(.a文件)、例程项目、STM32L476加载器(.bin文件)。
4、启动处理:
如果要更新固件,按照文档内存管理上的说法,BLUEMICROSYSTEM2不能被存于flash的起始地址,要将其存入flash的第二块区域,所以要在Src/system_stm32l4xx.c的向量表里设置地址偏移量,如:#define VECT_TAB_OFFSET 0x4000。下面是一段洋文,就不翻译了,贴上来:
说明一下其中FOTA指FirmwareOver-The-Air(云端固件升级)。
5、FOTA更新:
它是先通过蓝牙用app通信,app联网下载固件,然后发给MCU通过一定的校验来确定要不要更新。
6、串口调试:
本来是想按文档上的来个串口调试,看看板子的启动初始化过程,结果将板子插到电脑上并没有显示挂上什么硬件了,难道板子没有USB驱动,如果用手机软件上的虚拟串口,也是先要连上蓝牙才行,找了半天,问了问坛友再看了一下文档,这个板子默认情况下usb打印是没有被使能的,估计也不会显示驱动状态,只有改一下重新下载一下demo了,没有仿真器,就不玩了,改天买个回来,现在只能看看底层程序,玩玩android了。
7、总结:
套件在技术上设计没话说,当然那个App上的姿态测量之类的就是个简单的例子,不纠结他,但这款套件并不适合做产品,目的应该也不是用这个做成品吧,个人觉得要向二次开发的客户推荐自己的产品,那必须做一个完整的解决方案出来,要不然真是浪费时间。