在RM48的开发板,将CPU替换为RM57L843,再移植LWIP的协议栈。
用wireshark只能收到host发到目标板的ping包,抓不到目标板返回的数据包。
断点打到EMAC接收里,发现TXCONTROL里的TX_EN已经置1(拉高),但用示波器观察,TX_EN的PIN脚,
发现没有拉高,始终是低电平。
已经用HAL GEN已经配置了CPU时钟和Input pin muxing。
紧急求助,该如何解决?
SZ1:
Hi Lian,
您好!您可以参考我们Hercules wiki上关于LWIP的例程和说明:
http://processors.wiki.ti.com/index.php/HALCoGen_Ethernet_Driver_and_lwIP_Integration_Demonstration
For TMS570LC43x and RM57x devices:
Under the ‘Driver Enable’ tab, enable EMAC Driver and SCI1 Driver.
Under ‘VIM RAM’ add the names of the ISRs for EMAC Transmit and Receive Interrupts (Channels 77 and 79 respectively).
Enable these interrupts under the ‘VIM Channel 64-95’ tab.
Under the ‘PLL’ tab, change the multiplier for both PLLs to a value of 150, such that the output frequency in both cases is 300.00 MHz.
Under the ‘GCM’ tab, change the value of the VCLK1, VCLK2 and VCLK3 Dividers to 1 and VCLKA4 Divider to 2, such that the output of VCLKA4_DIV is 37.50 MHz.
Under the ‘PINMUX’ tab, enable RMII/MII, under Pin Muxing. Under Input Muxing, enable MDIO(G3), MII_COL(F3), MII_CRS(B4), MII_RX_DV(B11), MII_RX_ER(N19), MII_RXCLK(K19), MII_RXD[0], MII_RXD[1], MII_RXD[2], MII_RXD[3], MII_TX_CLK.
Under the ‘EMAC’ tab, change the EMAC address to the correct address (the default one in the example is mentioned above). The physical address is 1 by default.
Generate the system initialization and HAL Code.移植的时候是否设置有问题,您可以直接看一下我们基于RM57的例程,来做开发:
谢谢!
jia lian:
回复 SZ1:
以上8点,我都尝试过了,但现在仍然不能网络连通。
因为给的例子程序是CCS的程序,而我们目前的程序都是IAR下的工程,我们是用HAL Code Gen生成IAR的驱动,然后再上面移植OS和LWIP,
移植的OS和LWIP在RM48上已经试过了,都没问题,我们这边估计是驱动的问题。
对比了例程的驱动和我们用HAL Code Gen生成IAR的驱动,发现有很大的不同。而且例子的CCS工程,在我们的板子上也可以跑通,网络可以连通。
请问,是否用HAL Code Gen生成的CCS和IAR的驱动,区别非常大,是否有可能是生成的IAR驱动,有问题?
jia lian:
回复 jia lian:
或者,是否有IAR版本下的LWIP的例子程序,如果有的话,可否发给我,做个参考?