44.QT boot工具添加hex解析Apple的学习笔记

admin 2023年3月6日20:07:52评论14 views字数 998阅读3分19秒阅读模式

一,前言

43.QT自定义boot工具(上下位机联调)--Apple的学习笔记中描述不支持hex格式,但是MCU编译的时候我们常用的还是此格式文件。那么作为QT的上位机boot工具,必须要支持hex格式文件的解析。

二,需求

本人就是做通信协议的,解析处理是我的基本功。但是具体的格式忘记了,所以百度搜索了下,然后就有了设计思路。我做了个c语言的,先在vs2019中调试通过,也便于将来改成动态库。

三,遇到的问题

  1. 字符串转十进制简单的方法,只要分这3类即可
unsigned char hexFile::ASCII_TO_DEC(char data){    if ('0' <= data&&data <= '9')        return data - '0';    else if ('A' <= daa&&data <= 'F')        return data - 'A' + 10;    else if ('a' <= data&&data <= 'f')        return data - 'a' + 10;    else        return 0;}
  1. 传递指针问题
    我原来设计在函数内部分配数据空间,但是释放空间则在调用的类中,所以调用的类中需要传入空间地址。结果跑飞了。原来我搞错了,就是一个指针赋值,所有指针必须指向有地址空间的指针才是有效赋值。后来做了如下测试代码,才发现的问题。最后解决方法是把释放空间也打包在被调用的类中了。

#include #include char *bindat=NULL;void intHexToBin(char* data){ bindat=data; //这是一段会跑飞的代码,因为bindat指向了NULL bindat = (char *)malloc(8); bindat[0]=1; bindat[1]=2;}int main(){ char * testval=NULL; intHexToBin(testval); printf("%d,%dn",testval[0],testval[1]); return 0;}

四,效果

44.QT boot工具添加hex解析--Apple的学习笔记
image.png

五,小结

上位机暂时补充完成了,接着要把整个系统中的自定义booloader先要改成标准uds协议了。

44.QT boot工具添加hex解析--Apple的学习笔记


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

原文始发于微信公众号(汇编语言):44.QT boot工具添加hex解析--Apple的学习笔记

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月6日20:07:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   44.QT boot工具添加hex解析Apple的学习笔记https://cn-sec.com/archives/1253903.html

发表评论

匿名网友 填写信息