Thread 中讨论的其他器件:SYSBIOS、
您好!
我的配置为:
-SYSBIOS 6.46.4.53,
- MCSDK PDK 1.1.2.6 TMS320C6670、
- TMDXEVM6670_EVM 板。
我使用 SRIO 与 DIO 数据包和门铃(端口0上的模式0 - 1x)进行与 FPGA 的通信。 当我成功发送多个数据包时、会突然在循环中的 SRIO_sockSend_DIO 函数上挂起程序:
while (1)
{
if (CSL_SRIO_IsLSUFull (gSRIODriverMCB.hSrio、ptr_srioSocket -> mapIndex)=0)
中断;
}
这意味着我没有影子寄存器。 我必须等待。 当我使用函数 CSL_SRIO_SetLoopbackMode (hSrio、0)将 SRIO 更改为环回模式时、一切都正常。 我始终具有可配置的影子寄存器。
以下是我的 LSU0 (0x02900D00)配置、从 reg0到 reg 5和 RIO_LSU_Setup_REG0:
RIO_LSU_REG0 = 0x00000000
RIO_LSU_REG1 = FPGA 上的目标地址
RIO_LSU_REG2 = DSP 上的源地址
RIO_LSU_REG3 = 0x00000000
RIO_LSU_REG4 = 0xBEEF0400
RIO_LSU_REG5 = 0x00000054
RIO_LSU_SETUP_REG0 = 0x44444444
对于测试案例,我不传输门铃消息。 下表显示了 RIO_LSU0_REG6和 LSU0_STAT_REG (0x02900DE8):
|
DIO 数据包 Tx NO |
RIO_LSU0_REG6 |
LSU0_STAT_REG |
|
1 |
0x00000011. |
0x00000001 |
|
2. |
0x00000012. |
0x00000011. |
|
3. |
0x00000013. |
0x00000111 |
|
4. |
0x00000000 |
0x00001111 |
|
5. |
0x00000001 |
0x00001110 |
|
6. |
0x00000002 |
0x00001110 |
|
7. |
0x00000003 |
0x00001110 |
|
8. |
0x00000010 |
0x00001110 |
|
9. |
0x40000011 |
0x00001110 |
LSU0_STAT_REG 未更改其状态。 几次传输后程序挂起的问题在哪里? 我应该检查什么以及在哪里? 在回送模式下,我没有遇到任何问题。
我还测试了 SRIO_LoopbackDioIsrexampleproject。
- 我已将环回模式更改为正常模式。
- 突发了从4到12的 SRIO_DIO_LSU_ISR_NUM_Transfers、
- 将 MAX_MEM_LEGER_ENOUTESCINCIEers 从30增加到120、
和…… 与我的计划中的情况相同。 在多个传输程序挂起后、因为没有可使用的影子寄存器。
Lukas。