对于DEVICEID的设置:
1、DEVICEID声明和调用
/**********************************************************************
************************* Extern Definitions *************************
**********************************************************************/
extern const uint32_t DEVICE_ID1_16BIT;
extern const uint32_t DEVICE_ID1_8BIT;
extern const uint32_t DEVICE_ID2_16BIT;
extern const uint32_t DEVICE_ID2_8BIT;
extern const uint32_t DEVICE_ID3_16BIT;
extern const uint32_t DEVICE_ID3_8BIT_ID;
extern const uint32_t DEVICE_ID4_16BIT;
extern const uint32_t DEVICE_ID4_8BIT_ID;
extern关键词声明的外部定义的变量,即如果同一个工程下有两个.c文件,A.c和B.c,在A中用extern关键字声明一个变量VAL,又在B中声明一个变量VAL,那么A中的变量VAL值来自于B中VAL值。
调试DSP端的SRIO时,你的工程下肯定会包含一个SRIO配置程序,如device_srio_loopback.c,还有一个主程序,如main.c。我的工程界面截图如下:
由于DEVICEID在device_srio_loopback.c中已经声明为外部变量,在main中使用时还需要在main.c中声明。
2、对DEVICEID的设置
在device_srio_loopback.c中可以看到以下语句,该语句设置的是你所使用到底是哪一个DEVICEID,原因是你上面声明了那么多DEVICEID,谁知道你用的是哪个。
/* Set the Host Device Identifier. */
CSL_SRIO_SetHostDeviceID (hSrio, DEVICE_ID1_16BIT);
1
2
同样,还需要对设备的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的函数默认即可,无需修改。
参考文献
http://www.ti.com/cn/litv/pdf/sprugw1b
|