Показать сообщение отдельно
Старый 28.03.2009, 16:26   #6
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 41
Сообщений: 3,577
Вес репутации: 4386/122
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от CERGEI1982 Посмотреть сообщение
Точно,как же не подумал переключить,спасибо за подсказку все работает,буду дальше двигатся
Сразу же поигрался и заметил одну особеность сервиса OS_WaitBSem() это то что например если в задаче доходим до него и семафор установлен,OS_WaitBSem() вызывает OS_Sched(),и при следущем вызове этой же задачи мы можем двигатся дальше после OS_WaitBSem(),то есть не сразу пропускает по условию семафора,а при следущем выборе этой задачи,разве это правельно?
А представь, что этот же семафор ожидается более приоритетной задачей. Например, семафор используется для блокировки ресурса UART. Высокоприоритетная задача имеет срочные данные на отсылку, и если низкоприоритетная, проверив семафор сама, не позволит планировщику проверить, нет ли более срочной задачи, то высокоприоритетной придется ждать, пока отработает низкоприоритетная.
tester вне форума   Ответить с цитированием