caicaikan

Hex文件格式

一.Hex文件

  hex文件格式是一种可以烧写到单片机中,被单片机执行的一种文件格式.这种格式以行为单位,以:为开始.

     

 

 

 

二.校验和计算

    checksum = 0x100-(sum(data.ToHex)%256)

 

 1 string str = ":100D99001201100100000040484608060000010247";
 2             var temp = str.Remove(0, 1);
 3             List<int> value = new List<int>();
 4             string temp1 = string.Empty;
 5             for (int i = 0; i < temp.Length / 2; i++)
 6             {
 7                 temp1 = temp.Substring(i * 2, 2);
 8                 value.Add(Convert.ToInt16(temp1, 16));
 9             }
10             var checksum = 0x100 - (value.Sum() - value[value.Count - 1]) % 256;
11             MessageBox.Show(string.Format("原始校验和:{0},计算校验和:{1}", value.Last().ToString("x"), checksum.ToString("x")));
View Code

三.应用过程

  1.通过使用市面上大部分的hex文件编辑器等工具,打开hex文件,其显示的字节顺序是按照 Inter CPUhex 文件

   的格式进行显示的.所以看到的字节序列会是按照小端字节序进行排列(低位字节权重比较高)

     例如: HID设备的识别码, 0x4648 0x0908 会显示为48460809

  2.CPU内存存储字节的方式

    ①大端字节

      比较常见的出现在C0851系列的芯片中.在内存中,按照高位字节存储在低地址,低位字节存储在高地址存储数据

      网络协议传输也是大端模式

    ②小端字节

      80x86系列产品都是小端模式.

    ③高位字节与低位字节的区分,低地址与高地址的区分

     高低字节(相对而言):

      从左到右,拆分字节,按照从高位到低位的顺序区分高低位字节.

      0x12345678: 0x12就是高字节,0x78就是低字节

     高低地址:

      程序运行过程中,数据会加载到执行栈中,参加运算.栈的地址增长方式是递增的.后入栈的地址偏大.

    ④多字节的不同存储方式.注意如果传递字节序列,需要进行按需转换.

 

分类:

技术点:

相关文章:

  • 2021-12-28
  • 2021-12-06
  • 2022-12-23
  • 2021-07-27
  • 2021-12-17
猜你喜欢
  • 2021-09-11
  • 2022-01-11
  • 2022-12-23
  • 2021-03-31
  • 2021-04-02
  • 2021-06-07
相关资源
相似解决方案