还是CAN Bootloader问题,关于烧录文件解析细节

2020-03-12 19:47发布



上次提问中,感谢 xuyaqi  linqing171  ningling_21  WoodData 4位大哥的指点,已经差不多了解了!

现在还碰到问题就是,用Keil编译好的文件是HEX文件。而HEX文件中数据还需要解析,说明如下:

如:
:07069900C101010901C100CC
意思是:7个字节长度,起始位置是0x0699位置开始存放,数据类型为00,数据分别是 C1 01 01 09 01 C1 00

而当我用串口工具发送这次HEX文件,串口实际发的数据如下:
3A 30 37 30 36 39 39 30 30 43 31 30 31 30 31 30 39 30 31 43 31 30 30 43 43 0D 0A
用USB-CAN工具,通过CAN-TEST观察到的数据也是如上。

1.到底发的是啥数据?难道还要HEX--ASCII转换???

2.因为CAN一次只能发8个数据,而且HEX文件中,数据有长有短,看似乎比较难做处理,怎么弄?

3.而且是不是还要去深究HEX中的数据类型?

4.同时也要计算检验数据是否正确来判断数据是否对错?因为HEX文件本身有校验字节。

5.如何将这个不同长度的数据分成8个字节的一个包?

6.数据更新的时候,因为HEX文件的地址看似乎很凌乱,而FLASH都是一个页的擦除,是不是全部擦除一遍后,跟据HEX随便写就好了?

7.      A 还是擦一个页写一个页?                       B.    又从哪里擦起呢?

8.因为FLASH只能整个擦除,一个Page写完后,是不是还要将数据读回来?跟原来的数据对比一下?

9.还是其他的数据比对方法?

 

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。