Other Parts Discussed in Thread: SYSBIOS
Thread 中讨论的其他器件:SYSBIOS
工具/软件:TI-RTOS
当我对双 Mac 型号使用 enetlwip_SYSBIOS 时、可以为两个端口分配 IP 地址(链路和 Netif 均已启动)。
但只能成功使用第一个端口。 第二个端口既不能 发送数据包(发送 中断可以触发、但 PC 不能接收任何数据包)也不能接收数据包(不触发接收中断)。
该示例在 startwarer 上运行良好。 两个端口都可以正常工作。
我认为 原因是 pinmux、因为当我在 startwarer 上配置错误的 pinmux 时、会发生相同的问题。
但是、当我在 SYS/BIOS 上配置相同的 pinmux 时、只有第一个端口工作正常。
cpsw 引脚多路复用器的代码 如下:
空 CPSWPinMuxSetup (空)
{
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (0))=
CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (1))=
CONTRAL_CONF_GPMC_AD0_CONF_GPMC_AD0_RXACTIVE
| CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (2))=
CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (3))=
CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (4))=
CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (5))=
CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (6))=
CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (7))=
CONTRAL_CONF_GPMC_AD0_CONF_GPMC_AD0_RXACTIVE
| CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (8))=
CONTRAL_CONF_GPMC_AD0_CONF_GPMC_AD0_RXACTIVE
| CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (9))=
CONTRAL_CONF_GPMC_AD0_CONF_GPMC_AD0_RXACTIVE
| CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (10))=
CONTRAL_CONF_GPMC_AD0_CONF_GPMC_AD0_RXACTIVE
| CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_A (11))=
CONTRAL_CONF_GPMC_AD0_CONF_GPMC_AD0_RXACTIVE
| CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MII1_COL)=
CONTRAL_CONF_MII1_COL_CONF_MII1_COL_RXACTIVE
| CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MII1_CRS)=
CONTRAL_CONF_MII1_CRS_CONF_MII1_CRS_RXACTIVE
| CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MII1_RXERR)=
CONTRAL_CONF_MII1_RXERR_CONF_MII1_RXERR_RXACTIVE
| CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MII1_TXEN)=
CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MII1_RXDV)=
CONTRAL_CONF_MII1_RXDV_CONF_MII1_RXDV_RXACTIVE
| CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MII1_TXD3)=
CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MII1_TXD2)=
CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MII1_TXD1)=
CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MII1_TXD0)=
CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MII1_TXCLK)=
CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MII1_RXCLK)=
CONTRAL_CONF_MII1_RXCLK_CONF_MII1_RXCLK_RXACTIVE
| CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MII1_RXD3)=
CONTRAL_CONF_MII1_RXD3_CONF_MII1_RXD3_RXACTIVE
| CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MII1_RXD2)=
CONTRAL_CONF_MII1_RXD2_CONF_MII1_RXD2_RXACTIVE
| CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MII1_RXD1)=
CONTRAL_CONF_MII1_RXD1_CONF_MII1_RXD1_RXACTIVE
| CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MII1_RXD0)=
CONTRAL_CONF_MII1_RXD0_CONF_MII1_RXD0_RXACTIVE
| CPSW_RGMII_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_RMII1_REFCLK)=
CONTRAL_CONF_RMII1_REFCLK_CONF_RMII1_REFCLK_RXACTIVE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MDIO_DATA)=
CONTRAL_CONF_MDIO_DATA_CONF_MDIO_DATA_RXACTIVE
| CONTRAL_CONF_MDIO_DATA_CONF_MDIO_DATA_PUTYPESEL
| CPSW_MDIO_SEL_MODE;
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_MDIO_CLK)=
CONTRAL_CONF_MDIO_CLK_CONF_MDIO_CLK_PUTYPESEL
| CPSW_MDIO_SEL_MODE;
}
有人有什么好主意吗? 或者、成功使用 AM335x+sys/BIOS+lwip+dual Mac 的任何人都可以提供一些建议。 如果有人能提供一些帮助、我将不胜感激。