ota-总结--wifi

心血来潮想做ota升级,刚好手里有块esp01s模块和stm32f429开发板,磕磕绊绊总算成功了。

记录一下 难点就在于如何获取阿里云平台的bin文件数据,以及对flash的读写,擦除。

首先是坑爹的flash擦除。

擦除函数主要参考了正点原子官方例程。结果一言难尽。明明测试例程都通过了,结果在bootloader里面擦除函数一开始还有用,后面直接挂机,演都不带演的,完全擦除不了我bank的数据,bin文件居然也能正常写入,只不过写的不知道是哪来的数据,和我传的bin文件完全对不上,给老子干傻了,又测了一遍,发现在我写的测试例程里完全没有问题,在bootloader就挂机。搞不懂。然后这就导致了一个问题,一开始没看bin文件,不知道是flash问题,bootloader和app正常烧录到flash可以正常运行跳转,软件复位后进入bootloader接受bin文件写入bank区,在搬过来到app,跳转直接死机。

偶遇摆烂flash,拼尽全力,无法擦除

并非全力

没有细究原因,已经迷糊了,思索再三,估计是标志位的问题,解锁之后清除所有标志位就好了,一锅端。我以为hal库会自动清标志位的,这波属于是学艺不精了,而且正点原子是直接擦写函数一体,也没见他清标志位。。。醉了。

第二点,分片包下载协议用的是mqtt,晚上试下http。使用mqtt目前分片数据大小只有256字节,慢的一批,但申请512,1024都有问题,1024参考了大佬的文章,512我就不理解了,一直crc校验失败。后面搞清楚了继续更。

顺便还学到了群友的一招,使用标志位,更新完成后先别跳,软件复位之后再判断标志位跳转,营造一个干净的硬件环境。标志位可以写到备孕寄存器,无解。后面有时间试试,目前eeprom够我用了。

后面还有一键配网,aes加密,断点续传,差分升级,试试能不能搞出来。

参考

MQTT阿里云OTA 调试记录_阿里云 mqtt ota-CSDN博客

相关推荐
代码总长两年半28 分钟前
STM32物联网项目---ESP8266微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制---代码篇(四)
stm32·单片机·物联网
玉~你还好吗1 小时前
【嵌入式电机控制#进阶10】参数辨识(一):电阻辨识
单片机·嵌入式硬件
猫头虎1 小时前
2025最新超详细FreeRTOS入门教程:第八章 FreeRTOS任务通知
stm32·单片机·嵌入式硬件·物联网·硬件架构·51单片机·硬件工程
学生董格1 小时前
[嵌入式embed]Keil5烧录后STM32不自动运行,复位才能运行
stm32·单片机·嵌入式硬件
蜀黍@猿4 小时前
【GD32】存储器架构介绍
单片机·mcu
伴杯猫13 小时前
【ESP32-IDF】基础外设开发2:系统中断矩阵
c语言·单片机·嵌入式硬件·mcu·物联网·github
茯苓gao14 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
点灯小铭15 小时前
基于STM32单片机的智能粮仓温湿度检测蓝牙手机APP设计
stm32·单片机·智能手机·毕业设计·课程设计
沐欣工作室_lvyiyi15 小时前
基于单片机的智能路灯(论文+源码)
单片机·嵌入式硬件·毕业设计
Yyq1302086968215 小时前
SIT1050 5V 供电,±40V 接口耐压,1Mbps 高速 CAN 总线收发器
单片机·嵌入式硬件