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

STM32F769DK 云端固件升级例程使用说明

[复制链接]
STMCU-管管 发布时间:2018-9-29 14:54
1.前言 0 H( }; M$ R: f  j: ~

" ?9 @& L, X% w4 t& n对于一个物联网应用,远程监控设备状态、远程更新设备固件都是其要包含的典型基本功能。本示例在百度天工 IoT 平台和
/ E/ T! V+ b* ^) n. `9 \STM32F769 探索板上实现了上述功能,并有以下特性:* @7 G& \$ v  ^$ x# \
  • 支持 MQTT,HTTP 协议
  • 支持安全传输(TLS)支持应用数据的 Json 格式解析
  • 后台下载固件(不影响前台应用程序运行)
  • 断点续传
  • 固件完整性检查
    ) n  T& K8 c2 q) J) `$ ^. M( _

6 Z; ]( a& N+ f4 L8 f1 `4 |支持一键恢复出厂默认固件在本示例中,STM32F769DK 板可以通过板载以太网接口或者外接的 WIFI 模块连接到百度天工0 ^5 K( t4 {" l$ _
IoT 平台,与其建立 MQTT 连接:将板上的 LED 灯状态、软件版本等信息上传到云端,并可接收云端下发的 LED 控制命令、
1 v" J3 H0 q1 X6 b# a- [新固件版本和下载地址。根据接收到新固件下载地址,通过 HTTP 协议从对应的服务器下载新固件。下载完成后程序通过: D: |8 \8 [& N6 f  K
LCD 屏向用户提示可用的新版本信息,用户可以通过用户按键启动新固件的升级。下载和升级过程支持固件完整性校验。 1 c! {* ~* ]8 G1 _  G, t
在此例程中,我们用到了百度 IoT 平台和对象存储(BOS)服务。首先需要在 IoT 平台上创建 MQTT 服务,百度 IoT 平台相当于- t" s' i/ d- h. e
MQTT 服务器,STM32F769DK 板相当 MQTT 客户端。在本示例中,还用到了一个 PC 端工具 MQTT.fx,作为另一个 MQTT' y8 f: Z# t; B0 |( l; E. H
客户端来向 STM32F769DK 板推送固件升级消息,接收 STM32F769DK 板发送到云端的消息并进行显示。
5 j5 ]- Z$ p$ C" e6 N! |" H. m远程下载的固件需要保存在百度云 BOS 服务器上,然后就可以获取到对应的下载链接。这个下载地址信息,通过 PC 上的. _- F: K$ w% b
MQTT 客户端 MQTT.fx进行推送,STM32F769DK 板收到消息后,从百度的 BOS 服务器下载新固件。 : s0 h3 E% p9 J) N7 n
本例程提供了 IAR 的工程。
- ]# _1 z4 M9 o! [
; D% r$ i  P* b& w% ^9 G8 V2.系统框图 # B$ U& c' ]9 R: I1 U1 ?6 E

' U7 R0 O$ H2 R; b- J7 M% G
QQ截图20180929135004.png
图 1.通过有线连接到云端

2 a- I/ @5 |' n$ n6 ?6 U+ R% v3 {2 ?
QQ截图20180929135059.png

8 @* j0 q$ d0 `/ h) ~9 L! E
图 2.通过 wifi 连接到云端

4 m) W1 d! w) R/ {$ i' s" |3.存储区域划分
. k+ b  [1 ]/ Z7 @- t& p; p/ J4 z7 [' i* z! [1 k8 G
本示例用外部 QSPI Flash 保存从云端接收到的新固件和程序运行的状态。QSPI Flash 的功能区域划分如下:) p8 `1 |, B2 a! Y9 ?4 T. D# g  ]
  • 地址 0 开始的 64K 字节:Info 区域,用来保存程序运行的状态以及接收到的固件下载地址和版本号等。
  • 地址 0x00010000 开始的 4M字节:Default Firmware 区域,用来保存默认的应用程序固件。通常可以将第一版稳定的应用程序,烧写到 Default 区域中,用作“恢复板子出厂设置”。
  • 地址 0x00410000 开始的 4M字节:Download Firmware 区域,用来保存在 OTA 过程中从云端下载的当前新固件。 STM32F769 MCU 的内部 Flash 分为两部分:
  • 地址 0x08000000 开始是 Bootloader 程序:板子复位后,先执行的是 Bootloader 的程序,之后再跳转到应用程序。bootloader 程序会根据用户操作决定是否将 QSPI Flash 中的固件更新到 MCU 内部 Flash 中。
  • 地址 0x08010000 开始,保存用户应用程序:它除了用户自己的功能程序之外,还包括与云端通信,以及从云端下载新固件的程序。
    1 P# u9 t/ E" b' U" u

. x, Q7 D, h) x- e$ g/ }( a; h/ l
QQ截图20180929135111.png

, R, \& L8 p) j, O: @
, Y& ?0 @9 s; r+ b- H4.运行环境 * p2 ~- y8 v! o* i) H
; K/ i5 D2 Q0 H8 N+ X! F
4.1 硬件连接部分
' Z- `: T' I: k  J需要的硬件:
8 g( r9 m. W& Q
  • 一块 STM32F769I-DISCO 开发板,一根 micro USB 线
  • 使用以太网有线连接时:一根网线,一个可以连上互联网的网口  使用 wifi 无线连接时:一个 WIFI 热点,一个 ESP-01 模块  一台可以上网的电脑(运行 MQTT.fx)6 N0 o7 \6 q& K: V* _' y
5 e. h* H' }* f' n
# c1 m* T2 d' m( c2 A2 K
...& A' |2 p/ T$ W1 E3 f
7 |3 Y  f5 h: t9 p1 ]5 ]
了解更多,请下载后阅读' p* v. }7 r/ |- R' l  ?- m* \" `
. h7 ~- N' k, ~1 X: [7 _
下载地址1>>                                     下载地址2>>                                  更多实战经验>>
6 Y7 ^4 M  [/ ~; _  ^$ I, S. M6 T4 g& R5 y( Y' }

2 n; B$ F) |. \# f) u) d3 P3 H
收藏 1 评论7 发布时间:2018-9-29 14:54

举报

7个回答
寂寞,点燃一支烟 回答时间:2018-12-29 21:27:15
beta.guo 回答时间:2018-10-11 00:47:10
相应的源码有提供吗?到哪里下载呢?
, P* C2 @% [& }1 W, r! k4 ~4 s
hpdell 回答时间:2018-10-22 14:48:55
同问,有相应的源码下载吗 ?
andey 回答时间:2018-11-8 12:57:00
提示: 作者被禁止或删除 内容自动屏蔽
寂寞,点燃一支烟 回答时间:2018-12-29 21:20:58
源码好像都没有下载链接
xiaoyuer11111 回答时间:2019-1-14 22:04:42
寂寞,点燃一支烟 发表于 2018-12-29 21:27
6 e% a! e: \, `3 V7 o下载链接% |" N2 t3 r$ y7 m  U$ ~. t8 ~
http://www.stmcu.com.cn/Designresource/design_resource_detail/file/393603/lang/EN/token/63 ...
) G- w8 T+ d7 _2 E* |
这个链接无效了,请求给个能打开的网址,或说明一下去哪找,谢谢。
米兰的无线电 回答时间:2019-9-27 16:46:08
我也是来找示例代码链接的@STMCU 能帮忙问一下吗
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版