在device_srio_loopback.c中可以看到以下语句,该语句设置的是你所使用到底是哪一个DEVICEID,原因是你上面声明了那么多DEVICEID,谁知道你用的是哪个。
/* Set the Host Device Identifier. */
CSL_SRIO_SetHostDeviceID (hSrio, DEVICE_ID1_16BIT);
同样,还需要对设备的8bit deviceID和16bit 的deviceID进行设置,所以就有了以下语句。
/* Set the 16 bit and 8 bit identifier for the SRIO Device. */
CSL_SRIO_SetDeviceIDCSR (hSrio, DEVICE_ID1_8BIT, DEVICE_ID1_16BIT);
当然还会看到以下有关deviceID的语句,但该语句的作用类似于设置生产日期什么的,与具体功能没什么关系。默认就好。
/* Set the Device Information */
CSL_SRIO_SetDeviceInfo (hSrio, DEVICE_ID1_16BIT, DEVICE_VENDOR_ID, DEVICE_REVISION);
/* Set the Assembly Information */
CSL_SRIO_SetAssemblyInfo(hSrio, DEVICE_ASSEMBLY_ID, DEVICE_ASSEMBLY_VENDOR_ID,
DEVICE_ASSEMBLY_REVISION, DEVICE_ASSEMBLY_INFO);
其余device_srio_loopback.c中对于DEVICEID的函数默认即可,无需修改。
参考文献