每个链节点有三个域:
第一个域: 00 byte,表示tuple code号,也即TPL_CODE Tuple code: CISTPL_xxx(各种代码号见Table13-2);
第二个域:01 byte,表示tuple body字节数,也即到下一个节点的偏移地址;
第三个域:02~n+2 byte,表示tuple body内容;
有了这些知识,我们再来看我读写conexant wifi sdio card ID号的操作:
步骤一:读地址0x001000
rSDICARG == 0x00200000;
rSDICCON == 0x00000B74;
响应
rSDICSTA == 0x00000A34;
rSDIRSP0 == 0x 00001021;
解读0x00000B74(略)
解读0x00000A34(略)
解读0x00001021:0x00001021的低8位表示从地址0x001000读出来的值为0x21,查看table13-2得知为CISTPL_FUNCID
步骤二:读地址0x001001
rSDICARG == 0x00200200;
rSDICCON == 0x00000B74;
响应
rSDICSTA == 0x00000A34;
rSDIRSP0 == 0x00001002;
解读0x00000B74(略)
解读0x00000A34(略)
解读0x00001002:0x00001002的低8位表示从地址0x001001读出来的值为0x02,根据table13-1可知CISTPL_FUNCID的tuple body大小为2字节,读出来的第一个tuple code号并不为CISTPL_MANFID(0x20),而且知道其下一个节点的偏移量为2,需要继续读。
步骤三:读地址0x001004
rSDICARG == 0x00200800;
rSDICCON == 0x00000B74;
响应
rSDICSTA == 0x00000A34;
rSDIRSP0 == 0x00001022;
解读0x00000B74(略)
解读0x00000A34(略)
解读0x00001022:0x00001022的低8位表示从地址0x001004读出来的值为0x22,查看table13-2得知为CISTPL_FUNCE
步骤四:读地址0x001005
rSDICARG == 0x00200A00;
rSDICCON == 0x00000B74;
响应
rSDICSTA == 0x00000A34;
rSDIRSP0 == 0x00001004;
解读0x00000B74(略)
解读0x00000A34(略)
解读0x00001004:0x00001004的低8位表示从地址0x001005读出来的值为0x04,根据table13-1可知CISTPL_FUNCE的tuple body大小为4字节,读出来的第一个tuple code号并不为CISTPL_MANFID(0x20),而且知道其下一个节点的偏移量为4,需要继续读。
步骤五:读地址0x00100A
rSDICARG == 0x 00201400;
rSDICCON == 0x00000B74;
响应
rSDICSTA == 0x00000A34;
rSDIRSP0 == 0x00001020;
解读0x00000B74(略)
解读0x00000A34(略)
解读0x00001020:0x00001020的低8位表示从地址0x00100A读出来的值为0x20,查看table13-2得知为CISTPL_MANFID
步骤五:读地址0x00100C
rSDICARG == 0x 00201800;
rSDICCON == 0x00000B74;
响应
rSDICSTA == 0x00000A34;
rSDIRSP0 == 0x00001013;
解读0x00000B74(略)
解读0x00000A34(略)
解读0x00001013:0x00001013的低8位表示从地址0x00100C读出来的值为0x13,因为已得到CISTPL_MANFID节点号,根据Table13-1可直接读出tuple body信息,故此时地址为0x00100C,而非0x00100B。所以,读出来的值0x13即为conexant wifi sdio card ID号,这里你也可以读出0x00100B中的值,看CISTPL_MANFID的tuple body总共占多少字节,即可以把其所有信息读出来。
其实,开始我并不知道,这0x13就为conexant wifi sdio card ID 号,只是我把后续的三个字节读出来才知道。这后续的三个字节是003826,这咋一看也不知道什么东东,但是,在我看conexant提供的驱动代码时,发现其fireware文件名为03826.h,这样我就猜出来了。你想想,这CIS里不放些这样的信息,放什么信息呢?后来的操作,证明我的猜测是正确的,在探索真理的过程中,需要摸着石头过河,既然是探索,就要边走边看,柳暗花明的好事是常有的!
终于把如何读ID号写完,我要听听音乐了,上上网了。
文章评论(0条评论)
登录后参与讨论