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")));
三.应用过程
1.通过使用市面上大部分的hex文件编辑器等工具,打开hex文件,其显示的字节顺序是按照 Inter CPUhex 文件
的格式进行显示的.所以看到的字节序列会是按照小端字节序进行排列(低位字节权重比较高)
例如: HID设备的识别码, 0x4648 0x0908 会显示为48460809
2.CPU内存存储字节的方式
①大端字节
比较常见的出现在C0851系列的芯片中.在内存中,按照高位字节存储在低地址,低位字节存储在高地址存储数据
网络协议传输也是大端模式
②小端字节
80x86系列产品都是小端模式.
③高位字节与低位字节的区分,低地址与高地址的区分
高低字节(相对而言):
从左到右,拆分字节,按照从高位到低位的顺序区分高低位字节.
0x12345678: 0x12就是高字节,0x78就是低字节
高低地址:
程序运行过程中,数据会加载到执行栈中,参加运算.栈的地址增长方式是递增的.后入栈的地址偏大.
④多字节的不同存储方式.注意如果传递字节序列,需要进行按需转换.