stm32iap升级功能实现

spi升级功能注意事项:
1、整体方案:通过spi将数据写入到stm32f103的flash中,并将完成标志写入rtc的备份域。
Bootloader检测到写入标志将flash的新固件读取写入到原来运行地址。
2、难点a:spi通信不正常,spi需要由主机端先发,从机后接收。需要重载spi.
在这里插入图片描述

难点b:spi接收和发送的第一个字节不对,且数据会往后移一位,这个要在程序里做配适。
在这里插入图片描述

难点3: flash的读写,读flash可以用memcpy读flash内容。写flash要解锁上锁否则无法写入。
在这里插入图片描述

难点4:bin文件的意义及flash的格式, bin文件就是要写入flash的内容,和flash的内容一一对应。可以通过jflash软件读取bin文件得知bin的内容并对比写入flash的内容,检查上是否写入正确。读写8位和32位数要考虑地址偏移不同。
难点5:flash写入错误:半字和字的区别导致写入出现问题。
在这里插入图片描述
难点6: M4板iap升级bug 是因为中断错误引起,原来的代码里先禁中断后开启中断导致在固件升级时采集电压数据使得spi通讯异常,进而发送方收不到应答固件升级失败。解决办法就是关掉spi采集数据的中断。在接收方观察到接收的数据是采集的数据,以0x21开头所以是中断没关。结果如图所示,iap正常。

在这里插入图片描述

在这里插入图片描述
难点7:双机spi通信不成功的原因在于spi接收数据有问题,查看keil里的寄存器可以获得错误信息,是OVR 溢出错误,需要根据降低频率减少接收的数据,但是实际通过加大发送频率获得成功,可能与时序有关。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值