Hi alextimpau, here is the code.
It is targeted to NXP X-MPC574xG-Mother board and Daughter card board. And this project is made using S32 Design Studio for Power.
It will toggle LED DS2 when it receives the data.
You can use Packet Sender app for this.
Finally it sends packets using UDP protocol.
You can refer to the MPC5748G-GW-RDB reference design-Example Codes-User Guide on https://www.nxp.com/docs/en/user-guide/MPC5748G-GW-RDB%E2%80%8B-ECUG.pdf
The example project code : MPC5748G Secure Ethernet Gateway reference design | NXP
The integration has been done and I figured out the issue. I post my answer here so that it may help someone else too.
The problem I was facing in the GHS environment when I used Ethernet_udp_S32DS.zip example was that the IVOR4_Handler was not linked and the linker always said could not identify this symbol.
The issue was with intc_sw_handlers.S file. The extension of this file "S" was detected as a text file in MULTI editor from GHS.
Soltuion : rename the file extension in smaller case as intc_sw_handlers.s and then the editor detected it as assembly file. Now the proejct compiles and links atleast.
ENC28J60 is Ethernet controller from Microchip, it has nothing in common with the X-MPC574xG EVB. I guess that Yue Li reused code from somewhere...
Hi Alek, We are using EVB MPC5748G, we are able to establish Ethernet communication (UDP, TCP) with normal Ethernet frame but when we configured VLAN we see Ethernet MAC does not transmit Ethernet frames with VLAN info and ID. Instead it transmits VLAN frame as normal Ethernet frames (i.e. Ethernet MAC drops VLAN info present in the Transmit Buffer Ring). Do you know what could be the reason behind this?
I'm testing for realizing sending and receiving UDP package on MPC5748G with @ Kushal Shah's demo project, but I can not have any packages on PC and also have no inturrupts as breakpoints on MPC5748G.
Do you have any driver or projects for MPC5748G?
Hi, Yue Li,
I followed your mpc5748g-ethernet-demo-user guide.pdf to practice mpc5748g-ethernet-LWIP-udp.rar
I didn't change codes in the project as well as the default IP & MAC.
Though it built in the board successfully, no message received when I used NetAsistant to send UDP packets.
I tried to trace code by setting LEDs to check where is not executed in the program.
And found if (NetNIC_RevCheck()) cannot be access because the LED inside if cannot be traggled.
WHY the packets cannot be received and WHERE's wrong.
Hope someone gives help.
I'm trying to build this project, everything goes fine after updating some include path from project settings. While it shows some errors when i try to debug it, as following -
"Warning: Device is not detected or may be censored. Please check connections or please enter password in GDB server parameters within debug configurations using the flag -uncensorpassword=n, then restart the debug session"
I'm using the DEVKIT-MPC5748G for test, and using IDE: "S32 Design Studio for Power Architecture for Linux 1.2"
What should I do for this? Any helps will be appreciated!
Thank you for your project.
But your project seems need another hardware named "enc28j60".
Can your project be tested if I only have X-MPC574xG-Mother board and Daughter card board?
Thanks a lot for your project!
Could you tell me how can I use your app to send a socket from MPC5748G and intercept it in WireShark ? I tried to activate LWIP_SOCKET but I have some errors. Please, if you can give me an example.
thank you for your example project and user guide. It works for my setup (MPC574xG-MB + 176 DC).
Now I want to include your lwIP port to my existing project. This is what I did so far:
- copied the lwip-1.4.1
- copied the driver folder
- copied the header files from include folder
- added include paths (lwip-1.4.1/port, lwip-1.4.1/src/include and lwip-1.4.1/include/ipv4)
- added timer init and your timer ISR
Everything builds without errors but I don't get an UDP echo replied.
NetNIC_PhyInit(); replies 12040 (timeout). So I checked my timings and clocks. Mine are pretty similar to yours, but even if I copy your system160mhz() and PLL_160MHz() I run into the same errors. I checked MDC clock and it is at 2.5MHz. MDIO line shows traffic during init.
Do I miss anything? Or do you have any idea what i can check for troubleshooting?
Thank you for your efforts
You can check the D-Cache at first, I disable the D-cache in the startup.S. Because the Rx Description and Tx Description for ENET must be in the un-cachable memory space. The default project which is built by S32DS enables the D-cache. I disable D-cache just for convenient. You can configure the D-cache for memory and put the Rx Description and Tx Description in the un-cachable memory space.
Neil Li (李越)