FreeRTOS vTaskList |
![]() |
Добавил(а) microsin |
Функция vTaskList (декларируется подключаемым файлом task.h) позволяет отобразить информацию о потоках. void vTaskList (char *pcWriteBuffer); Чтобы эта функция была доступна, в конфигурационном файле FreeRTOSConfig.h должны быть определены в 1 макросы configUSE_TRACE_FACILITY и configUSE_STATS_FORMATTING_FUNCTIONS. Замечание: эта функция во время своего выполнения запрещает прерывания. Поэтому она не предназначена для использования в рабочем релизе приложения, и её следует использовать только в целях отладки. Функция vTaskList() вызовет uxTaskGetSystemState(), и затем отформатирует сгенерированные uxTaskGetSystemState() сырые данные в текстовый (ASCII) дамп таблицы, где будет показано текущее состояние каждой задачи, включая самое большое использование своей памяти стека за все время выполнения. Пример вывода таблицы задач BL602: test_task X 15 702 3 0x42010690 IDLE R 0 20 5 0x42011690 TCP/IP B 30 3798 4 0x4201a760 Tmr Svc B 31 310 6 0x42011818 hellow B 16 335 1 0x4200f564 bloop_rt S 26 414 7 0x4200fdc8 fw S 30 1055 8 0x42013694 event_loop B 17 754 2 0x4200e500 test_httpc B 10 5142 10 0x4201f850 wifi_mgmr S 28 498 9 0x4201ec48 Буква в первом столбце таблицы обозначает состояние задачи: B Blocked Второй столбец показывает приоритет задачи. Чем значение выше, тем у задачи выше приоритет. Третий столбец показывает, сколько максимум байт задача использовала из своего стека за время своего выполнения. Четвертый столбец показывает идентификатор задачи. Пятый столбец показывает начало буфера стека задачи. Параметр: pcWriteBuffer Указатель на буфер, куда будет записана информация генерируемой ASCII-таблицы. Подразумевается, что размер этого буфера достаточен, чтобы разместить в себе сгенерированный табличный отчет. Должно быть достаточным приблизительно по 40 байт на каждую задачу. Функция vTaskList() предоставляется только для удобства отладки, она не считается частью ядра FreeRTOS. Также см. описание функции vTaskGetRunTimeStats(), которая генерирует информацию статистики по использованию процессорного времени каждой задачи [2]. [Ссылки] 1. vTaskList site:freertos.org. |