阅读:3732回复:1
TI的1394芯片的EEPROM中的CHECKSUM怎么算?
两个同样的1394卡,双机通信失败,怀疑是两卡的GUID一样导致,想改一下EEPROM,其中有个CHECKSUM不知道怎么算出来的。
这是从卡上的EEPROM中读出来的: 42 BD11 0E 00 C6 00 01 8D 30 00 8D 95 C0 20 EC 10 10 24 00 00 00 88 FF FF ... 按TI的手册 格式如下: 00:PCI max_lat lower 4 bits/PCI min gnt lower 4 bits 01:PCI Subsystem Vendor ID (lsbyte) 02:PCI Subsystem Vendor ID (msbyte) 03:PCI Subsystem ID (lsbyte) 04:PCI Subsystem ID (Msbyte) 05:Link Enhancement Register/HC Control defaults 06:MiniROM_Addr 07:GUID Hi (0) 8-bit chip id hi 08:GUID Hi (1) LSB of 24-bit node vendor id 09:GUID Hi (2) middle byte of 24-bit node vendor id 0A:GUID Hi (3) MSB of 24-bit node vendor id 0B:GUID Lo (0) byte 0 (LSB) of 32-bit chip id lo 0C:GUID Lo (1) byte 1 of 32-bit chip id lo 0D:GUID Lo (2) byte 2 of 32-bit chip id lo 0E:GUID Lo (3) byte 3 (MSB) of 32-bit chip id lo 0F:ROM CRC 10:Link_Enh Byte 1 11:PCI Misc Byte 0 12:PCI Misc Byte 1 ... 其中的ROM CRC怎么也算不对,有那位指点一下? |
|
沙发#
发布于:2010-02-23 20:43
TI的技术支持回答如下:
EEPROM CRC Calculation Formula { //Calculate the CRC Value crc = 0xaa; for (counter2 = 0; counter2 < 23; counter2++) if (counter2 != 15) crc = crc ^ data[counter2]; //Output the CRC Value if (!eeprom.Write(15, crc)) error(); } |
|