ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
8 мая
556130 Топик полностью
Alex B. (28.10.2014 19:49, просмотров: 288) ответил AlexBi на И вообще приведенный пример с двумя задачами и одним семафором на мой взгляд не корректный.
Вы не до конца разобрались, как работает вытесняющая RTOS. При установке семафора вызывается планировщик, который проверяет очередь задач, готовых к выполнению (ожидающих семафора). Если такая задача есть, планировщик передает ей управление.  if (!(is_queue_empty(&(sem->wait_queue)))) { que = queue_remove_head(&(sem->wait_queue)); task = get_task_by_tsk_queue(que); if (task_wait_complete(task, TN_FALSE)) { tn_enable_interrupt(); tn_switch_context(); return TERR_NO_ERR; } rc = TERR_NO_ERR; }
Согласуйте импеданс!