43.QT自定义boot工具(上下位机联调)Apple的学习笔记

admin 2023年3月6日20:07:39评论34 views字数 1035阅读3分27秒阅读模式

一,前言

42.QT上位机CAN通信--Apple的学习笔记我已经实现了can通信的上位机,那么我要让其发挥作用,就是添加其实用功能,比如bootloader,但是要用uds协议,下位机我这边uds实现起来很容易,但是基于QT c++的上位机基于uds的bootloader代码,我得从空白开始实现了。所以我觉得移植一个现成的自定义的bootloader协议,先不用uds。目的是验证上下位机的框架,将来再替换为uds就解决问题了。

二,说干就干

仅移植QT上位机的协议,先从st官网下载了一个stm32f1的自定义bootloader代码,看懂它的自定义boot代码后,自己添加一个ui界面,然后赋予按钮功能,分分钟解决了。它的自定义协议是通过id来作为命令,不同的命令发给下位机有不同的操作。

三,遇到的问题

  1. hex文件识别不正确,read的raw文件也就是bin文件可以正常解析下载。keil生成bin文件,需要在配置的user界面中添加fromelf --bin -o "[email protected]" "#L"。

  2. 我的下位机用的是can中断的方式,原来官网的是一个while循环中一直等待用的,里面还有第一次的mac握手,基于我这边中断方式的架构修改了下位机的框架仅将自定义的bootloader协议移植过来,底层flash驱动也重新修改了来适配stmf407zg芯片。

  3. QT中原版协议中有can握手,类似于以太网的心跳包,我删除了。添加了按住key0则进入刷新,否则power on reset是直接跳入app的。

四,效果

自动bootloader,上下位机联调成功。boot用了16K。然后就是app了,app地址从0x08004000开始


43.QT自定义boot工具(上下位机联调)--Apple的学习笔记

image.png


一收一发,抽查了下载的bin内容,是通过QT的0x706发出的。最后刷新完成后,通过0x704发送跳转地址命令,然后app正常运行了,哈哈~


43.QT自定义boot工具(上下位机联调)--Apple的学习笔记

image.png

五,小结

又发明创造了一个简易小工具,当然功能太弱了,通用性也不强。但是凡事从简单到复杂,将来会对QT功能进一步扩展。且将bootloader改成标准uds协议,哈哈,好有成就感,学以致用,乐趣无穷!

43.QT自定义boot工具(上下位机联调)--Apple的学习笔记


作者:applecai
链接:https://www.jianshu.com/p/0f4446f219f7
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


原文始发于微信公众号(汇编语言):43.QT自定义boot工具(上下位机联调)--Apple的学习笔记

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月6日20:07:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   43.QT自定义boot工具(上下位机联调)Apple的学习笔记https://cn-sec.com/archives/1253907.html

发表评论

匿名网友 填写信息