Цитата(turnon @ Mar 17 2016, 12:33)

...
Конечно смысла в семафорах до старта задач нет, до старта задач поток один. Но это унифицированный код, он используется и из задач, и до старта планировщика.
Все работало нормально, но вчера вылез HardFault, трассировка привела к этому участку в queue.c:
if( xTaskResumeAll() == pdFALSE )
{
portYIELD_WITHIN_API();
}
При вызове portYIELD_WITHIN_API() вылетает в HardFault.
А это Ваш код? В смысле Вы так придумали или это код совместной работы в команде? А зачем так извращаться вообще? Мне, можно сказать новичку, итак ясно, что при вызове portYIELD_WITHIN_API() работа перейдет к планировщику. А как оно у Вас до сих пор работало интересно?

Конечно в мире разные бывают любители и пр. Но вот зачем иногда не совсем понятно.
Сообщение отредактировал AleksBak - Mar 17 2016, 09:29