请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F769DK 云端固件升级例程软件开发文档

[复制链接]
zero99 发布时间:2018-10-17 16:05
STM32F769DK 云端固件升级例程软件开发文档


1. 前言
STM32F769DK 云端固件升级例程分为两部分:Bootloader 和用户应用程序。
该软件基于 STM32F7Cube 库运行在 STM32F769I-DISCO 探索板上,利用百度的 IoT 平台实现了从云端更新固件的功能。 Bootloader 部分主要负责将新版本用户应用程序从 QSPI Flash 烧到 MCU 内部 Flash 中,并跳转到应用程序运行,功能相对简单。

用户应用程序部分除了用户自己的功能程序外,还包括固件版本云端推送,固件文件云端下载以及断点续传等功能,程序结构相对复杂。

本文档主要介绍用户应用程序这部分。也会对 Bootloader 做简单介绍。

用户应用程序软件包包括以下功能组件
从云端更新固件的应用程序代码
- MbedTLS(用于建立和云端的安全连接)
- LwIP(使用有线连接时的 TCP/IP 协议栈)
- FreeRTOS
- Paho Embedded MQTT(MQTT 客户端在 STM32 上的实现)
- cJSON(封装和解析 MQTT 数据包负载)
- STM32F769I-Disc 的板级驱动(包括 QSPI Flash,LCD,Wifi 模块等驱动)
- STM32F7 系列的 HAL库


支持 IAR Embedded Workbench IDE,V7.80.4 及以上版本。
本例程仅作为 STM32 无线远程升级功能的参考。



2. 软件架构
用户应用程序的软件分层如下图,应用层程序可以通过接口函数调用各层的服务。
- STM32F7Cube HAL 库:HAL 驱动层向上层软件提供了使用各个外设的接口函数。包括通常的或扩展属性的 APIs。
上层的中间件,应用程序等可以通过调用这些 API 函数来操作外设,这样便不会使得上层的软件依赖于某个特定的
MCU。使得程序更具有复用性,并且容易移植到其他的 MCU 系列上去。
- STM32F769DK BSP 板级驱动:针对 STM32F769DK 这块板子上使用到的外设和资源,提供了相应的 API 函数,比 如 LED 灯的控制,按键的操作等。
- LwIP 协议栈:TCP/IP 协议的实现。
- mbedTLS: 支持设备与云端建立 TLS 连接。
- Paho:Paho Embedded MQTT 实现 MQTT 客户端部分的协议。支持与云端建立 MQTT 通信。
- cJSON:针对嵌入式系统,提供 JSON 格式数据的解析。
- FreeRTOS: 轻量级的实时操作系统。

除此以外,应用层还实现了:
- 连接百度 IoT 平台的 MQTT 客户端: 基于 Paho,根据百度 IoT 平台的连接逻辑进行封装实现。
- HTTP 客户端:在 MCU 端实现了 HTTP 客户端,支持通过 TCP 或者 TLS 的方式从云端下载文件。
- 远程固件更新的程序:实现云端推送,自动下载,以及断点续传的逻辑。

12.png



3. 文件结构

用户应用程序的文件结构如下:
13.png



4. 软件模块

4.1  网络 抽象层
在实际的应用中,设备端可能通过多种方式连接到云端。比如以太网,WIFI,2G/3G 等。所以程序中增加了网络抽象层,来
支持在不同连接方式上的切换。


...


了解更多,请下载后阅读

下载地址1>>           下载地址2>>           更多实战经验>>


收藏 评论3 发布时间:2018-10-17 16:05

举报

3个回答
beckybai 回答时间:2018-10-17 22:55:46
支持,谢谢分享
creep 回答时间:2018-10-18 08:31:33
好东西,,谢谢分享!
糯米团大哥 回答时间:2018-12-24 09:43:31
OTA好实例,谢谢分享
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版