rtel wrote on Monday, December 09, 2013:
That looks better. See my comments below:
C:\R\workspace\DaUDPaRTOS\lwip_echo_server_0\Debug/…/src/heap_3.c:105: undefined
reference to `vApplicationMallocFailedHook’
This is complaining that you have configUSE_MALLOC_FAILED_HOOK set to 1 in FreeRTOSConfig.h, but have not defined a function called vApplicationMallocFailedHook() in your code.
./src/port.o: In function xPortStartScheduler': C:\R\workspace\DaUDPaRTOS\lwip_echo_server_0\Debug/../src/port.c:277: undefined reference to
vApplicationSetupTimerInterrupt’
Search for vApplicationSetupTimerInterrupt() on the documentation page for your port:
C:\R\workspace\DaUDPaRTOS\lwip_echo_server_0\Debug/…/src/port.c:288: undefined reference
to `vPortStartFirstTask’
vPortStartFirstTask() is defined in port.S, which is in the same directory and port.c, and must also be included in your build.
./src/port.o: In function vPortYield': C:\R\workspace\DaUDPaRTOS\lwip_echo_server_0\Debug/../src/port.c:315: undefined reference to
VPortYieldASM’
vPortYieldASM is also in Port.S
./src/port.o: In function vPortTickISR': C:\R\workspace\DaUDPaRTOS\lwip_echo_server_0\Debug/../src/port.c:424: undefined reference to
vApplicationClearTimerInterrupt’
Refer to port documentation page - link provided already above.
./src/port.o: In function prvInitialiseInterruptController': C:\R\workspace\DaUDPaRTOS\lwip_echo_server_0\Debug/../src/port.c:447: undefined reference to
vPortExceptionsInstallHandlers’
Refer to port documentation page - link provided already above.
./src/tasks.o: In function vTaskStartScheduler': C:\R\workspace\DaUDPaRTOS\lwip_echo_server_0\Debug/../src/tasks.c:1239: undefined reference to
vMainConfigureTimerForRunTimeStats’
./src/tasks.o: In function uxTaskGetSystemState': C:\R\workspace\DaUDPaRTOS\lwip_echo_server_0\Debug/../src/tasks.c:1510: undefined reference to
ulMainGetRunTimeCounterValue’
./src/tasks.o: In function xTaskIncrementTick': C:\R\workspace\DaUDPaRTOS\lwip_echo_server_0\Debug/../src/tasks.c:1683: undefined reference to
ulMainGetRunTimeCounterValue’
These three are complaining that you have your FreeRTOSConfig.h header file set to use run time stats gathering, but have not provided the kernel with the source of the run time counter.
./src/tasks.o: In function vTaskSwitchContext': C:\R\workspace\DaUDPaRTOS\lwip_echo_server_0\Debug/../src/tasks.c:1842: undefined reference to
vApplicationStackOverflowHook’
This is complaining that you have configCHECK_FOR_STACK_OVERFLOW set to a non-zero value, but you have not provided the vApplicationStackOverflowHook() function.
C:\R\workspace\DaUDPaRTOS\lwip_echo_server_0\Debug/…/src/tasks.c:2088: undefined
reference to `vApplicationIdleHook’
This is complaining that you have configUSE_IDLE_HOOK set to a non-zero value in FreeRTOSConfig.h, but have not provided the vApplicationIdleHook() function - see the same link already provided somewhere above to the kernel hook functions documentation page.
A lot of these look like you have taken a FreeRTOSConfig.h header file from an application that defined quite a rich set of functionality, but your current application does not currently provide the same hooks into that functionality.
Regards.