Jump to content

    

event freetos

Здравствуйте. Не нашел реализации event в freertos, если ли такое то подскажите, или как можно реализовать запуск Task по флагу средствами ОС.

Share this post


Link to post
Share on other sites

Да еще, как реализуеться тоже самое что писал выше с сопрограммами(т.е кооперативном режиме) и можно совмещаять вытесняющую многозадачность и кооперативную?

 

Share this post


Link to post
Share on other sites
Здравствуйте. Не нашел реализации event в freertos, если ли такое то подскажите, или как можно реализовать запуск Task по флагу средствами ОС.

В freertos нет event. Запуск (разблокировку наверно?) можно реализовать не по флагу, а по сообщению в очереди. Вообще в freertos из примитивов синхронизации имеются только очереди. Семафоры и мутексы реализованы макросами поверх очередей.

Share this post


Link to post
Share on other sites

По поводу мутеков, если я захватываю мутекс одним процессом, при этом как я понимаю блокируеться процессы которые используют этот мутекс, проиходит ли смена контекста для заблокироанного процесса, и вообще сколько ресурсов времени и ram уделяет планировщик процессу блокированным мутексом?

Share this post


Link to post
Share on other sites
По поводу мутеков, если я захватываю мутекс одним процессом, при этом как я понимаю блокируеться процессы которые используют этот мутекс, проиходит ли смена контекста для заблокироанного процесса, и вообще сколько ресурсов времени и ram уделяет планировщик процессу блокированным мутексом?

Не так. Процесс захвативший мутекс продолжает работать. Последующие процессы при попытке захватить этот же мутекс будут блокироваться. Процессы, не пытающиеся захватить мутекс продолжают работать как обычно. Ресурсов дополнительных это не занимает. Сам по себе мутекс конечно занимает сколько-то байт памяти.

Share this post


Link to post
Share on other sites

В принципе я это имел виду.

То есть заблокированный процесс мутексом или vTaskSuspend одно и тоже? То есть работа планировщика и в этих случаях будет одинаковая, и отличаться только разблокировкой процесса.

Edited by Bethowen81

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