工具/软件:TI-RTOS
支持路径:/Product/Help、带器件选择/
我正在使用 PCIe 采样源检查 PHY 回路。
(参考文档 sprugs6d.pdf - 2.12.2 PHY 环回)
–在端口强制链接寄存器(PL_FORCE_LINK_STATE=0x2)的 LNK_STATE 字段中设置0x2 (POLL_ACTIVE 状态)。
– 将 PL_FORCE_LINK 的 FORCE_LINK 域中的0x1设置为 LINK_STATE 域指定的状态(PL_FORCE_LINK [FORCE_LINK]= 0x1)。
上述寄存器的设置有问题。 附加代码和日志。
----------------------------------------------------------------
pcieRet_e skipDetectStateIntsm (PCIe_Handle handle)
{
pcieRet_e 返回值;
pcieRegisters_t setRegs;
pcieRegisters_t getRegs;
pciePlForceLinkReg_t plForceLink;
memset (setRegs、0、sizeof (setRegs));
memset (getRegs、0、sizeof (getRegs));
memset (&plForceLink、0、sizeof (plForceLink));
getRegs.plForceLink =&plForceLink;
if ((RetVal = PCIe_readRegs (handle、PCIe_location_local、&getRegs))!= PCIe_RET_OK)
{
System_printf ("读取 plForceLink 寄存器失败!\n");
返回 RetVal;
}
plForceLink.lnkState = 0x2;
plForceLink.forceLink = 0x1;
PCIe_logPrintf ("getRegs Force Link lnkState:%x\n"、getRegs.plForceLink->lnkState);
PCIe_logPrintf ("getRegs Force Link forceLink:%x\n"、getRegs.plForceLink->forceLink);
setRegs.plForceLink =&plForceLink;
if ((RetVal = PCIe_writeRegs (handle、PCIe_location_local、setRegs))!= PCIe_RET_OK)
{
System_printf ("设置 plForceLink 失败!\n");
返回 RetVal;
}
CycleDelay (100);
memset (getRegs、0、sizeof (getRegs));
memset (&plForceLink、0、sizeof (plForceLink));
getRegs.plForceLink =&plForceLink;
if (PCIe_readRegs (handle、PCIe_location_local、&getRegs)!= PCIe_RET_OK)
{
PCIe_logPrintf ("端口强制链接寄存器失败!\n");
}
其他
{
//PCIe_logPrintf ("getRegs 端口强制链接 lpeCnt:%x\n",plForceLink.lpeCnt);
PCIe_logPrintf ("getRegs 端口强制链接 lnkState:%x\n",plForceLink.lnkState);
PCIe_logPrintf ("getRegs 端口强制链接 forceLink:%x\n",plForceLink.forceLink);
//PCIe_logPrintf ("getRegs 端口强制链接号:%x\n",plForceLink.linkNum);
}
返回 PCIe_RET_OK;
}/* skipDetectStateIntsm */
------------------------------------------------------------------
控制台输出内容
getRegs 强制链接 lnkState:0x02
getRegs 强制链接 forceLink: 0x01
getRegs 端口强制链接 lnkState:0x02
getRegs 端口强制链接 forceLink:0x00
------------------------------------------------------------------
我无法在 PL_FORCE_LINK 寄存器中设置 FORCE_LINK 值。
我不知道为什么。 感谢你的帮助。