zoukankan      html  css  js  c++  java
  • bootloader

    1) C#

    为了给设备升级固件,在前同事的基础上改了下,在.NET Framework下写的。

    2)Tera Term + ttl

    上面.NET平台的运行文件虽然小巧,但是依赖.NET Framework框架,而且这个框架还比较大,有些系统缺这个,装起来麻烦。

    于是换了个办法,用Tera Term超级终端。

    Tera Term 超级终端, 自带ttl脚本,很方便定制操作流程。

    如下实例是在串口端通过xmodem协议更新MCU固件。

         

    几行代码 就能清晰的描述 一个繁琐的握手协议 并且 使用xmodem协议发送文件。

    文件发送协议也可以自定义,具体细节请看Tera Term安装目录下的help文档。

    3)上面脚本已经够简单了,但是用户还是希望有个界面,于是添加一个qt界面来运行这段脚本,个人感觉非常不和谐。

    4)感觉是不是窗口有点多,但是又不能去掉,因为都是Tera Term内置的,这里只是调用exe执行文件,哎...算了,推到重来! 还是从稍微熟悉点的qt下手,不用什么超级终端,这里有个现成的,http://theramblingness.com/2015/07/16/a-gui-and-cli-utility-for-efm32s-uart-bootloader/

    握手流程改一下就OK了。

    5)发现qt对XP系统下的USB CDC 接口支持不彻底,XP以上系统都正常。

    在XP系统下烧录完一次,再烧第二次就连不上USB CDC的虚拟串口了,正常的串口是没这个问题的。非要重新插拔一次才能重新连上。

    于是加了个xp系统的选项,并且引导用户做个插拔的流程。

    6)折腾完,总算解脱了。

    ...

    你以为就这样完了,没那么简单!

    我们的设备是通过充电座连接USB的,把设备放上充电座容易抖动,一抖动就相当于USB插拔了n次,直接灸挂了。

    折腾无止尽...

  • 相关阅读:
    在CentOS-6.9里安装openvswitch-2.5.4
    Django 2.0.7 使用小知识
    微信小程序 存储数据到本地以及本地获取数据
    微信小程序目录结构与配置介绍
    微信小程序视图层介绍及用法
    小程序 wx.request请求
    小程序的启动流程(生命周期)
    小程序的双线程模型
    小程序之基础组件
    小程序之路由跳转
  • 原文地址:https://www.cnblogs.com/dong1/p/5472340.html
Copyright © 2011-2022 走看看