lghlmcl
驱动牛犊
驱动牛犊
  • 注册日期2009-10-21
  • 最后登录2010-02-23
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3586回复:1

TI的1394芯片的EEPROM中的CHECKSUM怎么算?

楼主#
更多 发布于:2010-02-05 21:18
两个同样的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怎么也算不对,有那位指点一下?
lghlmcl
驱动牛犊
驱动牛犊
  • 注册日期2009-10-21
  • 最后登录2010-02-23
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于: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();

}

游客

返回顶部