This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/TMDSEVM437X: AM4379 Ethernet Packet Send/Receive

Part Number: TMDSEVM437X
Other Parts Discussed in Thread: AM4379

Tool/software: TI-RTOS

Hi everyone,

We have a GPEVM AM4379 with TI RTOS installed through the PRSDK v5.02 components.

The actual project we require is to send plenty of command bytes (maybe 150-200 bytes in a row), from a Master PC to our GPEVM board.

The board should divide and process the bytes those came within a single row command sentence and perform the related operations regarding the specific parts of the command sentence.

We have run the NIMU_BasicExample_evmAM437x, we receive good communication numbers on the UART0 screen.

1- Now, first of all, we need to know how to send a command byte set to the board from the computer and the receive process in the board. Can we use Emac_Send, Emac_Receive? Or do you have some suggestions to use, maybe  a sample code? 

2- To send a command set to the EVM board, should we use an external program or application? The idea is to send a ie. 10-byte command to the board, if the header and checksum are ok, the board will turn ON the related loads considering the command bytes.

How should we proceed further? Does anyone have a suggestion?

Thanks in advance,

Warmest regards,

Korkut.

  • Hi,

    NIMU_BasicExample_evmAM437x is a NIMU/NDK example which uses the NDK package, so you have the full network stack, you can use any TCP, UDP, HTTP ... etc.
    If you Emac_Send, Emac_Receive(), those is the L2 switch level API, it doesn't understand the network stack. It just Tx and Rx data you defined.

    You can work on either directions depending on your application and usage. For example, the PC is connected to the EVM, you may find some socket application to send out TCP, UDP packets. You may also find some tool to send packet with all fields you can fill-in yourself. On the receive side, if the EVM sends out data without those MAC/IP header using Emac_Send(), will you PC understand it? It may be easier using any existing TCP/UDP protocol to communicate with outside world, like your PC.

    In the NIMU example, you may develop some UDP or TCP server or client code, then you can talk and exchange the data with PC. You may look at pdk_am437x_1_0_13\packages\ti\transport\ndk\nimu\example\client\src\client.c and some Windows based test application in NDK:
    ndk_3_40_01_01\packages\ti\ndk\winapps.

    Regards, Eric
  • Thanks a lot Eric.

    This implementation is exactly what I was looking for.

    We can create a socket and trade the communication bytes with the local pc through the application.

    NDK seems to keep everything on the shelf for us. We will move forward to create code for command bytes exchange network.

    We may disturb you again, in case of urgent expertise requirement once more :)

    Have a nice day.