FPGA+DSP SRIO通信(二)——DSP端参数设置(DEVICEID)

上回书说到,我们已经配置好了FPGA和DSP通信的通道速率,但是在调试时总是不知道怎样设置deviceID,本节就来说说,DSP端的deviceID怎么配置。

deviceID就是设备的标识,别的设备与你用SRIO通信时,只认你这个标识。也就是DSP的SRIO户口本上的名字。


首先附上官方给出的基于CSL的SRIO配置程序,该程序和上一章所用到的程序是同一个。

device_srio_loopback.c

对于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;

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

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);

 
 
  • 1
  • 2

当然还会看到以下有关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);

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

其余device_srio_loopback.c中对于DEVICEID的函数默认即可,无需修改。

参考文献

http://www.ti.com/cn/litv/pdf/sprugw1b

PS:欢迎大家与我讨论文章中的问题,包括反对我的观点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值