zoukankan      html  css  js  c++  java
  • STM32+W5500+AIR202/302远程升级篇-源码使用问题

    <p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/STM32W5500AIR202B/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

    一,程序BUG

    1.由于环形队列溢出而造成的升级错误问题!

    错误日志如下:(开始时数据校验没有问题,下载一段时间以后出现校验错误)

    错误原因:

    使用W5500接收数据,基本上每包数据都保持在1024字节左右

    每次都是把1024左右的字节写入环形队列.

    而主函数每一次循环只提取128字节的数据写入Flash.

    当然数据传输本身也需要时间,以当前看来,应该是循环提取2~3次左右

    就会再次收到新来的约1024字节数据,那么整体来看,整个环形队列一直处于缓慢增长的状态

    如果文件很大,那么过一段时间环形队列就会溢出,导致了数据接收不完整.进而导致了当前的问题.

    (每次接收大约1024字节)

    (每次都把约1024字节的数据写入flash)

     

    (一个循环只从环形队列读取128字节)

    解决方案:(判断W5500里面有数据以后,如果环形队列可以写入才提取数据写入环形队列)

    二,程序优化

    1.增加了 WriteFlashWords函数(升级程序可以兼容各种校验帧)

    替换了原先的把程序数据写入Flash的函数,此处的修改兼容了各种检验帧.

    2.CRC校验改为了查表法

     

  • 相关阅读:
    仿酷狗音乐播放器开发日志二十七 用ole为窗体增加文件拖动功能(附源码)
    redis持久化和主从同步
    MySQL主从复制
    Nginx 安装与详解
    ContOS安装配置MySQL,redis
    ContOS7编译安装python3,配置虚拟环境
    ContOS7切换国内源
    ContOS 常用命令
    轮询、长轮询、websock
    flask之三方组件
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/13763374.html
Copyright © 2011-2022 走看看