17-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(单片机升级程序部分说明)...

https://www.cnblogs.com/yangfengwu/p/10891914.html

 

为了让大家会用我写的程序,而且敢用,所以我详细介绍一下我的单片机程序流程

这里只说明稳定精简版的STM32程序,因为所有的都是在此基础上增加的.

很基础的东西自行修炼:

空闲接收数据: http://www.cnblogs.com/yangfengwu/p/8912072.html

环形队列:        https://www.cnblogs.com/yangfengwu/p/6822984.html 

单片机IAP:     https://www.cnblogs.com/yangfengwu/p/6921832.html

1-2节服务器:  https://www.cnblogs.com/yangfengwu/category/1383497.html  

以这一节为例:我只是感觉这一节应该通用性比较强,AT指令版控制升级,而且回复的数据需要剔除网络模块自身增加的数据

https://www.cnblogs.com/yangfengwu/p/10888037.html

 

 

注:

 

 

程序启动先检查上次更新的状态:

上次刚写完用户程序;写入数据头地址不对;数据接收有误;用户程序没运行起来

 

 

 关于那个0x04:

更新完成是0x01,然后写入0x04,更新完成会执行咱更新的用户程序,咱用户程序里面再把这个标志修改为0x00

 

 

如果执行了

 

 到下面就会进入

 自己的模块已经链接上TCP了,现在就是发http协议,下载数据

 

 

 

 然后根据http获取的云端版本号,判断是不是需要升级

 

 

 然后看串口接收:

我写的串口接收就是确定接收到HTTP的头数据,同时解析出来HTTP发过来的数据个数

然后判断如果 Status == 2,下次的数据就写入环形队列

 

 

 

 如果自己的模块是http发过来什么就打印什么,直接可以

 

 如果模块自行添加了数据就需要剔除(只要保证往环形队列里面写的是用户程序就可以)

 

 在往环形队列里面写的时候,主函数里面同时读出来往Flash里面写

 

 写完,修改写的状态,复位重启

 

其实需要用户修改的只是

 

 

 

 

 

还有一点 ,64K到256K(不包括)用此程序没有问题,,256K及其以上的还没测试,正在做一块STM32F103RET6的板子,512KB Flash  将用这块板子测试

我用的64K的

 

 

可以自行更改,

 

 我为了大家方便修改用户程序

大家修改完,IAP程序会打印一下两个用户程序的配置

 

 然后配置下

只看一下用户程序1

 

 

 

 用户程序生成BIN就可以了,然后放到云端

 

升级篇就先到这里.....学海无涯.

 

https://www.cnblogs.com/yangfengwu/p/10991907.html

 

转载于:https://www.cnblogs.com/yangfengwu/p/10896650.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值