挂中断
Pci的用
pciIntConnect
其他的
IntConnect
pciIntConnect(INUM_TO_IVEC(INT_NUM_GET(irq)),Cpci7841canIsr, cardNum); //这种是永远对的 INUM_TO_IVEC和INT_NUM_GET这两个宏
调式
调式驱动程序,给对应的寄存器赋值发生腹部进去是,可能是自己映射的地址不对。可以超级终端下用命令d+地址去看内存的数据,用m修改。还是改不了的话,肯定是程序的问题。在超级终端下pciDeviceShow 看东西pciHeaderShow.
驱动知识
-> pciHeaderShow 1,12,0
这里的末尾1是i/o访问,0是内存访问。
Pci驱动
pciFindDevice(HI32IOVENDOR,HI32IODEVICE,boardnum,
&pciBus,&pciDevice,&pciFunc);找到bus device和function
pciConfigInLong(pciBus,pciDevice,pciFunc,
PCI_CFG_BASE_ADDRESS_2,&HI32IO_addr[boardnum]
这个PCI_CFG_BASE_ADDRESS_2(offset)看红框内,使用有数字的那个PCI_CFG_BASE_ADDRESS_X(取值于0-5)