Jump to content

    

Что то порчу в системе

Здравствуйте.

 

В проекте с FreeRTOS 7.2 появился баг - через час-два-три работы проц остается навечно крутится в Idle Task (portTASK_FUNCTION). Таймер оси работает но прерывания не вызывает, в регистрах R0-R12 значения прописываемые в pxPortInitialiseStack. Увеличение configMINIMAL_STACK_SIZE и configTOTAL_HEAP_SIZE не помогло. Менеджер памяти heap_1. Проц LPC2388.

Пока не понимаю даже как подойти к проблеме. Можно ли узнать последнюю выполняемую задачу перед Idle? создать какой то лог на переключение контекста?

Подскажите идею, пожалуйста.

 

Спасибо.

Share this post


Link to post
Share on other sites

Это может означать, что сидите в ожидании какого то семафора или queue

Share this post


Link to post
Share on other sites

Вам сюда

 

мне хватало сделать контроль переполнения памяти..... определял функцию vApplicationStackOverflowHook, в которой отмигивал лампочкой номер задачи. Очень мощно помогает эклипсовый плуг StateViewer.

Можно ли узнать последнюю выполняемую задачу перед Idle? создать какой то лог на переключение контекста?

Всё можно. См. по тойже ссылке Список макросов трассировки.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this