Перейти к содержанию
    

в рамках CMSIS Rtos и Keil RTOS

Мануал RTX говорит очень однозначно:

Semaphores are used to manage and protect access to shared resources. Semaphores are very similar to Mutexes.

 

Отличия:

Whereas a Mutex permits just one thread to access a shared resource at a time, a semaphore can be used to permit a fixed number of threads to access a pool of shared resources.

Using semaphores, access to a group of identical peripherals can be managed (for example multiple DMA channels).

 

Мьютекс по сути - вырожденный семафор (бинарный), но имеющий дополнительное ограничения:

Mutex management functions cannot be called from interrupt service routines (ISR), unlike a binary semaphore that can be released from an ISR.

 

Но есть у мьютекса и особая "фича":

The advantage of a mutex is that it introduces thread ownership.

When a thread acquires a mutex and becomes its owner, subsequent mutex acquires from that thread will succeed immediately without any latency.

Thus, mutex acquires/releases can be nested.

 

Поэтому "Вывод в порт дебажный" будет работать одинаково как на мьютексе так и на семафоре.

 

По крайней мере так сделано в Keil RTX. В других ОСях это может немного отличаться.

С точки зрения реализации и производительности это также очень сильно зависит от конкретной RTOS.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот тут я как-нибудь сам разберусь на что и сколько мне тратить своё время!

А вот тут я Вам напомню о Правилах Форума. Можете тратить его на что угодно, но не на флейм здесь. Настоятельно прошу воздержаться впредь от наездов и приреканий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...