本来要实现的部分:在程序升级阶段握手成功后要实现flash片区的擦除和向上位机发送请求。然后对上位机发来的数据进行解析缓存。
bug现象:上位机通过串口给单片机发送消息,但是最后发现收到消息的队列长度为0(正常情况下接收中断会将收到的数据入队列)。
分析:经过检查发现接收中断里面的入队列函数和计算队列长度函数都是没有任何问题的。那么问题就可能是出在中断函数,最后发现在flash擦除期间确实没有进入中断函数。
修改:将向上位机发送请求放在擦写之后执行,或者给上位机发送完请求后延时一段时间。
在其他程序中将中断触发的时间点避开flash操作即可。