Forger 17 12 июня, 2018 Опубликовано 12 июня, 2018 · Жалоба в рамках 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 4 12 июня, 2018 Опубликовано 12 июня, 2018 · Жалоба А вот тут я как-нибудь сам разберусь на что и сколько мне тратить своё время! А вот тут я Вам напомню о Правилах Форума. Можете тратить его на что угодно, но не на флейм здесь. Настоятельно прошу воздержаться впредь от наездов и приреканий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться