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.

CCS/TMS570LC4357: lwIP+FreeRTOS Project Ping Problem

Part Number: TMS570LC4357
Other Parts Discussed in Thread: HALCOGEN

Tool/software: Code Composer Studio

Hi all,

We are trying to do practice on some network functions in lwIP with FreeRTOS by using HDK of TMS570LC4357. For this purpose, we initially use a base project (linked by below) supported by Texas Instruments Teams.     

Project Link Post : https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/799670 --> ( 7178.TMS570LC4357_FreeRTOS_LWIP.7z )

Enhanced Sight to Link : /cfs-file/__key/communityserver-discussions-components-files/312/4478.TMS570LC4357_5F00_FreeRTOS_5F00_LWIP.7z

Although, FreeRTOS and lwIP debugging and building successfully on our HDK, we are not able to pinging our device. These lines firing our ping proccess:

Here are HL_sys_main.c :

#include "HL_sys_common.h"
#include "FreeRTOS.h"
#include "os_task.h"

#include "HL_het.h"
#include "HL_gio.h"
#include "HL_esm.h"

#ifdef DEBUG
void
__error__(char *pcFilename, uint32_t ui32Line)
{
}
#endif

void vTask1(void *pvParameters);
extern void vApplicationStackOverflowHook(xTaskHandle *pxTask, signed char *pcTaskName );
extern void EMAC_LwIP_Main (uint8_t * emacAddress);

xTaskHandle xTask1Handle;

uint8	emacAddress[6U] = 	{0x00U, 0x08U, 0xEEU, 0x03U, 0xA6U, 0x6CU};
uint32 	emacPhyAddress	=	1U;

int main(void)
{
    esmREG->SR1[2] = 0xFFFFFFFFU;
    esmREG->SSR2   = 0xFFFFFFFF;
    esmREG->EKR = 0x0000000A;
    esmREG->EKR = 0x00000000;


    gioInit();
    gioSetDirection(gioPORTB, 0xFFFF);

    gioSetDirection(hetPORT1, 0xFFFFFFFF); //HDK uses NHET for LEDs


    if (xTaskCreate(vTask1,"Task1", configMINIMAL_STACK_SIZE, NULL,  ((configMAX_PRIORITIES-1)|portPRIVILEGE_BIT), &xTask1Handle) != pdTRUE)
    {
        while(1);
    }

    vTaskStartScheduler();

    while(1);
    
    return 0;
}



void vTask1(void *pvParameters)
{
    EMAC_LwIP_Main (emacAddress);
    
    #if 1
    for(;;){
        /* Taggle GIOB[6] with timer tick */
        gioSetBit(gioPORTB, 6, gioGetBit(gioPORTB, 6) ^ 1);

        /* Taggle HET[1] with timer tick */
        gioSetBit(hetPORT1, 17, gioGetBit(hetPORT1, 17) ^ 1);  //LED on HDK, top left
        vTaskDelay(300);
    }
    #endif
}

 

Here are reference official document that we are use about the issue:

https://www.ti.com/lit/an/spna239/spna239.pdf

Result :

I tried everything step by step such like using IPADDR_USE_STATIC, IPADDR_USE_DHCP and IPADDR_USE_AUTOIP in lwiplib.h. But it can not success lwIP_init and it is not pinging my device. Do you know why is this happening ?

 

Thank you for interests.