Other Parts Discussed in Thread: DP83640
主题中讨论的其他器件:DP83640
工具/软件:TI-RTOS
您好!
我目前正在将 PRU-ICSS-PROFINET-SLAVE 01.00.01.00移植到定制硬件平台。 尝试向平台发送以太网帧时遇到问题。
发送以太网帧时、我看不到 ICSS_EmacRxInterruptHandler 的执行。
我能够确认、当我从平台上插入 RJ45以太网电缆并将其拔出时、我看到 ICCS_EmacLinkISR 正在执行。
使用调试器时、我暂停执行并检查 PRU ICSS SRSR0和 SRSR1寄存器(根据 SPRUHF8A)。 我认为这两个寄存器会报告挂起的中断。
暂停时、当我插入/拔下以太网电缆时、我看到 SRSR1 (地址0x4a320200)从0x0变为0x200。 0x200对应于系统事件41。
SPRUHF8A 文档和 tiswitch_pruss_intc_mapping.h 头文件在 examples\Profinet slave 目录中的内容似乎都表明系统事件41与 MMI_LINK0_EVENT (#define MMI_LINK0_EVENT 41)关联。 PRUSS_INTC_INITDATA 的#define 还将系统事件41设置为 CHANNEL7。
如果再次使用执行暂停的调试器、我向平台发送 ping、我看到 SRSR1从0x0更改为0xc。 在本例中、0xc 对应于系统事件35和系统事件36。
事件35和事件36似乎不是预期的系统事件--至少通过 PORT1_RX_EOF_EVENT (#define as 42)和 PORT2_RX_EOF_EVENT (#define as 54)的#define 来实现。
我已检查 PRU_ICSS MII_RT 寄存器(0x4a326002c)、并将其设置为0x1。 这似乎是正确的、当 PRU 接收到以太网帧时、我应该期待 Port1_RX_EOF_EVENT 或 port2_RX_EOF_EVENT。
我不确定如何继续。 您能否就如何确定正在发生的事情提供任何建议?
我使用的是 NDK 2.25.01.11、PDK AM335x_1_0_6、SDK RTOS AM335x_3_03_00_04和 PRU-ICSS-PROFINET-SLAVE 01.00.01.00。
谢谢。