打印
[牛人杂谈]

bootloader 高级货

[复制链接]
960|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1) C#
为了给设备升级固件,在前同事的基础上改了下,在.NET Framework下写的。


2)Tera Term + ttl
上面.NET平台的运行文件虽然小巧,但是依赖.NET Framework框架,而且这个框架还比较大,有些系统缺这个,装起来麻烦。
于是换了个办法,用Tera Term超级终端。
Tera Term 超级终端, 自带ttl脚本,很方便定制操作流程。
如下实例是在串口端通过xmodem协议更新MCU固件。
     
几行代码 就能清晰的描述 一个繁琐的握手协议 并且 使用xmodem协议发送文件。
文件发送协议也可以自定义,具体细节请看Tera Term安装目录下的help文档。

沙发
734774645|  楼主 | 2017-5-19 11:07 | 只看该作者
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系统的选项,并且引导用户做个插拔的流程。


使用特权

评论回复
板凳
734774645|  楼主 | 2017-5-19 11:07 | 只看该作者
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系统的选项,并且引导用户做个插拔的流程。


使用特权

评论回复
地板
734774645|  楼主 | 2017-5-19 11:07 | 只看该作者
6)折腾完,总算解脱了。
...
你以为就这样完了,没那么简单!
我们的设备是通过充电座连接USB的,把设备放上充电座容易抖动,一抖动就相当于USB插拔了n次,直接灸挂了。
折腾无止尽...

使用特权

评论回复
5
734774645|  楼主 | 2017-5-19 11:08 | 只看该作者
本帖最后由 734774645 于 2017-5-19 11:22 编辑

出处
***************
感谢对勾同学的努力和无私奉献。博主不让说,怕出名被人打。。算了。删了。

使用特权

评论回复
6
734774645|  楼主 | 2017-5-19 11:22 | 只看该作者
发现链接坏了,不过问了博主,说是:efm32s-uart-bootloader 在github上有

使用特权

评论回复
7
mintspring| | 2017-5-19 18:33 | 只看该作者
这个做法真不错,不过单片机要有Bootloader吧

使用特权

评论回复
8
598330983| | 2017-5-19 23:14 | 只看该作者
这个方法下载固件很不错。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

200

主题

3489

帖子

14

粉丝