Sagittarius 0 5 марта, 2013 Опубликовано 5 марта, 2013 · Жалоба Здравствуйте. В проекте с FreeRTOS 7.2 появился баг - через час-два-три работы проц остается навечно крутится в Idle Task (portTASK_FUNCTION). Таймер оси работает но прерывания не вызывает, в регистрах R0-R12 значения прописываемые в pxPortInitialiseStack. Увеличение configMINIMAL_STACK_SIZE и configTOTAL_HEAP_SIZE не помогло. Менеджер памяти heap_1. Проц LPC2388. Пока не понимаю даже как подойти к проблеме. Можно ли узнать последнюю выполняемую задачу перед Idle? создать какой то лог на переключение контекста? Подскажите идею, пожалуйста. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SyncLair 0 5 марта, 2013 Опубликовано 5 марта, 2013 · Жалоба там что то tickless сделали в новых версиях -- может оно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kan35 7 10 марта, 2013 Опубликовано 10 марта, 2013 · Жалоба Это может означать, что сидите в ожидании какого то семафора или queue Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 10 20 марта, 2013 Опубликовано 20 марта, 2013 · Жалоба Вам сюда мне хватало сделать контроль переполнения памяти..... определял функцию vApplicationStackOverflowHook, в которой отмигивал лампочкой номер задачи. Очень мощно помогает эклипсовый плуг StateViewer. Можно ли узнать последнюю выполняемую задачу перед Idle? создать какой то лог на переключение контекста? Всё можно. См. по тойже ссылке Список макросов трассировки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться