Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

undefined reference to `vTaskGetRunTimeStats' - missing vTaskGetRunTimeStats ..... vTaskList (IDFGH-801) #416

Closed
ESP32DE opened this issue Mar 10, 2017 · 2 comments

Comments

@ESP32DE
Copy link
Contributor

ESP32DE commented Mar 10, 2017

hi guys

can not compile

#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"     // have included
#include "esp_system.h"
#include "nvs_flash.h"

extern void vTaskGetRunTimeStats( char *pcWriteBuffer );

void example_1_task(void *pvParameter) {
   while (1) {
   printf("hello from task 1\n");
   vTaskDelay(873 / portTICK_PERIOD_MS);
   }
}


void example_2_task(void *pvParameter) {
   while (1) {
   printf("hello from task 2\n");
   vTaskDelay(1132 / portTICK_PERIOD_MS);
   }
}

void example_3_task(void *pvParameter) {
   while (1) {
   printf("hello from task 3\n");
   vTaskDelay(1823 / portTICK_PERIOD_MS);
   }
}


void app_main(void) {
   char pcWriteBuffer[1024] = "";
   
   xTaskCreate(&example_3_task, "example_3_task", 2048, NULL, 5, NULL);
   xTaskCreate(&example_1_task, "example_1_task", 2048, NULL, 5, NULL);
   xTaskCreate(&example_2_task, "example_2_task", 2048, NULL, 5, NULL);
   
   while(1) {
   
      // vTaskList((char *) pcWriteBuffer);
          vTaskGetRunTimeStats(( char *)pcWriteBuffer);
         printf("Run Times:\n%s\n",pcWriteBuffer);
         vTaskDelay(1000 / portTICK_PERIOD_MS);
   }
   
}

$ make all
CC hello_world_main.o
AR libmain.a
LD hello-world.elf
C:/eMbeddedHome2017/CLK_erzeuger/hello_world/build/main\libmain.a(hello_world_main.o):(.literal.app_main+0x1c): undefined reference to vTaskGetRunTimeStats' C:/eMbeddedHome2017/CLK_erzeuger/hello_world/build/main\libmain.a(hello_world_main.o): In function app_main':
C:/eMbeddedHome2017/CLK_erzeuger/hello_world/main/hello_world_main.c:80: undefined reference to `vTaskGetRunTimeStats'
collect2.exe: error: ld returned 1 exit status

after check the freertos.a in build folder
there is no vTaskGetRunTimeStats or vTaskList

xtensa_overlay_os_hook.o xt_overlay_init_os
xtensa_overlay_os_hook.o xt_overlay_lock
xtensa_overlay_os_hook.o xt_overlay_unlock
FreeRTOS-openocd.o uxTopUsedPriority
timers.o xTimerMux
timers.o xTimerCreateTimerTask
timers.o xTimerCreate
timers.o xTimerGenericCommand
timers.o pcTimerGetTimerName
timers.o xTimerIsTimerActive
timers.o pvTimerGetTimerID
timers.o xTimerPendFunctionCallFromISR
timers.o xTimerPendFunctionCall
tasks.o pxCurrentTCB
tasks.o taskYIELD_OTHER_CORE
tasks.o vTaskDelayUntil
tasks.o uxTaskPriorityGet
tasks.o vTaskSuspend
tasks.o vTaskResume
tasks.o vTaskEndScheduler
tasks.o vTaskSuspendAll
tasks.o xTaskGetTickCountFromISR
tasks.o uxTaskGetNumberOfTasks
tasks.o vTaskSwitchContext
tasks.o xTaskRemoveFromEventList
tasks.o vTaskSetTimeOutState
tasks.o vTaskMissedYield
tasks.o vTaskAllocateMPURegions
tasks.o uxTaskGetStackHighWaterMark
tasks.o xTaskGetCurrentTaskHandle
tasks.o eTaskGetState
tasks.o uxTaskPriorityGetFromISR
tasks.o __getreent
tasks.o pcTaskGetTaskName
tasks.o pvTaskGetThreadLocalStoragePointer
tasks.o xTaskGetAffinity
tasks.o xTaskGetCurrentTaskHandleForCPU
tasks.o xTaskGetSchedulerState
tasks.o vTaskEnterCritical
tasks.o vTaskExitCritical
tasks.o xTaskCreateRestricted
tasks.o xTaskCreatePinnedToCore
tasks.o vTaskStartScheduler
tasks.o vTaskDelete
tasks.o vTaskDelay
tasks.o vTaskPrioritySet
tasks.o xTaskResumeFromISR
tasks.o xTaskGetTickCount
tasks.o xTaskIncrementTick
tasks.o xTaskResumeAll
tasks.o vTaskPlaceOnEventList
tasks.o vTaskPlaceOnUnorderedEventList
tasks.o vTaskPlaceOnEventListRestricted
tasks.o xTaskRemoveFromUnorderedEventList
tasks.o xTaskCheckForTimeOut
tasks.o vTaskSetThreadLocalStoragePointerAndDelCallback
tasks.o vTaskSetThreadLocalStoragePointer
tasks.o vTaskPriorityInherit
tasks.o xTaskPriorityDisinherit
tasks.o uxTaskResetEventItemValue
tasks.o pvTaskIncrementMutexHeldCount
tasks.o ulTaskNotifyTake
tasks.o xTaskNotifyWait
tasks.o xTaskNotify
tasks.o xTaskNotifyFromISR
tasks.o vTaskNotifyGiveFromISR
event_groups.o xEventGroupCreate
event_groups.o xEventGroupWaitBits
event_groups.o xEventGroupClearBits
event_groups.o xEventGroupGetBitsFromISR
event_groups.o xEventGroupSetBits
event_groups.o xEventGroupSync
event_groups.o vEventGroupDelete
event_groups.o vEventGroupSetBitsCallback
event_groups.o vEventGroupClearBitsCallback
heap_regions.o pvPortMallocTagged
heap_regions.o vPortFreeTagged
heap_regions.o xPortGetFreeHeapSizeTagged
heap_regions.o xPortGetMinimumEverFreeHeapSizeTagged
heap_regions.o vPortDefineHeapRegionsTagged
port.o pxPortInitialiseStack
port.o vPortEndScheduler
port.o port_xSchedulerRunning
port.o xPortStartScheduler
port.o xPortSysTickHandler
port.o vPortYieldOtherCore
port.o vPortStoreTaskMPUSettings
port.o port_interruptNesting
port.o xPortInIsrContext
port.o vPortAssertIfInISR
port.o vPortCPUInitializeMutex
port.o vPortCPUAcquireMutex
port.o vPortCPUReleaseMutex
port.o vPortFirstTaskHook
port.o vPortSetStackWatchpoint
port.o xPortGetTickRateHz
xtensa_init.o _xt_tick_divisor
xtensa_init.o _xt_tick_divisor_init
list.o vListInitialise
list.o vListInitialiseItem
list.o vListInsertEnd
list.o vListInsert
list.o uxListRemove
croutine.o xCoRoutineCreate
croutine.o pxCurrentCoRoutine
croutine.o vCoRoutineAddToDelayedList
croutine.o vCoRoutineSchedule
croutine.o xCoRoutineRemoveFromEventList
queue.o xQueueGenericReset
queue.o xQueueGenericCreate
queue.o xQueueGetMutexHolder
queue.o xQueueCreateCountingSemaphore
queue.o xQueueGenericSend
queue.o xQueueCreateMutex
queue.o xQueueGiveMutexRecursive
queue.o xQueueGenericSendFromISR
queue.o xQueueGiveFromISR
queue.o xQueueGenericReceive
queue.o xQueueTakeMutexRecursive
queue.o xQueueReceiveFromISR
queue.o xQueuePeekFromISR
queue.o uxQueueMessagesWaiting
queue.o uxQueueSpacesAvailable
queue.o uxQueueMessagesWaitingFromISR
queue.o vQueueDelete
queue.o xQueueIsQueueEmptyFromISR
queue.o xQueueIsQueueFullFromISR
queue.o vQueueWaitForMessageRestricted
queue.o xQueueCreateSet
queue.o xQueueAddToSet
queue.o xQueueRemoveFromSet
queue.o xQueueSelectFromSet
queue.o xQueueSelectFromSetFromISR
xtensa_intr.o xt_unhandled_interrupt
xtensa_intr.o xt_set_exception_handler
xtensa_intr.o xt_set_interrupt_handler
ringbuf.o xRingbufferPrintInfo
ringbuf.o xRingbufferCreate
ringbuf.o vRingbufferDelete
ringbuf.o xRingbufferGetMaxItemSize
ringbuf.o xRingbufferSend
ringbuf.o xRingbufferSendFromISR
ringbuf.o xRingbufferReceive
ringbuf.o xRingbufferReceiveFromISR
ringbuf.o xRingbufferReceiveUpTo
ringbuf.o xRingbufferReceiveUpToFromISR
ringbuf.o vRingbufferReturnItem
ringbuf.o vRingbufferReturnItemFromISR
ringbuf.o xRingbufferAddToQueueSetRead
ringbuf.o xRingbufferAddToQueueSetWrite
ringbuf.o xRingbufferRemoveFromQueueSetRead
ringbuf.o xRingbufferRemoveFromQueueSetWrite
portasm.o port_IntStack
portasm.o port_IntStackTop
portasm.o _frxt_setup_switch
portasm.o _frxt_int_enter
portasm.o _frxt_int_exit
portasm.o vPortYieldFromInt
portasm.o _frxt_dispatch
portasm.o _frxt_timer_int
portasm.o _frxt_tick_timer_init
portasm.o vPortYield
portasm.o _frxt_task_coproc_state
xtensa_vectors.o _xt_panic
xtensa_vectors.o _DebugExceptionVector
xtensa_vectors.o _DoubleExceptionVector
xtensa_vectors.o _KernelExceptionVector
xtensa_vectors.o _UserExceptionVector
xtensa_vectors.o _xt_alloca_exc
xtensa_vectors.o _xt_user_exit
xtensa_vectors.o _xt_coproc_sa_offset
xtensa_vectors.o _xt_coproc_owner_sa
xtensa_vectors.o _Level2Vector
xtensa_vectors.o _xt_medint2_exit
xtensa_vectors.o _Level3Vector
xtensa_vectors.o _xt_medint3_exit
xtensa_vectors.o _Level4Vector
xtensa_vectors.o _Level5Vector
xtensa_vectors.o _NMIExceptionVector
xtensa_vectors.o _WindowOverflow4
xtensa_vectors.o _WindowUnderflow4
xtensa_vectors.o _WindowUnderflow8
xtensa_vectors.o _WindowUnderflow12
xtensa_vectors.o _WindowOverflow8
xtensa_vectors.o _WindowOverflow12
xtensa_context.o _xt_context_save
xtensa_context.o _xt_context_restore
xtensa_context.o _xt_coproc_init
xtensa_context.o _xt_coproc_release
xtensa_context.o _xt_coproc_savecs
xtensa_context.o _xt_coproc_restorecs
xtensa_intr_asm.o _xt_interrupt_table
xtensa_intr_asm.o _xt_exception_table
xtensa_intr_asm.o xt_ints_on
xtensa_intr_asm.o xt_ints_off

best wishes
rudi ;-)

edit:
we have a vTaskGetRunTimeStats function:

void vTaskGetRunTimeStats( char *pcWriteBuffer )

and we have a vTaskGetRunTimeStats macro

#define vTaskGetRunTimeStats MPU_vTaskGetRunTimeStats

Currently I am helpless

edit:

https://esp32.com/viewtopic.php?f=2&t=1399&p=6388#p6388

think it is freertos specific and not an ESP-IDF problem
i close it

@GzhuFlyer
Copy link

Hello,friend,The program can be compile success when I configure the menuconfig like this:
configure

@GzhuFlyer
Copy link

do some statement,in your local project terminal ,run "make menuconfig", and then select "Component config --->FreeRTOS", set the config page like the photo I show above. Generally enable FreeRTOS stats formatting functions Enable FreeRTOS to collect run time stats.

@github-actions github-actions bot changed the title undefined reference to `vTaskGetRunTimeStats' - missing vTaskGetRunTimeStats ..... vTaskList undefined reference to `vTaskGetRunTimeStats' - missing vTaskGetRunTimeStats ..... vTaskList (IDFGH-801) Mar 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants