|
Флаги в FreeRTOS |
|
|
|
Nov 28 2011, 09:08
|
Участник

Группа: Свой
Сообщений: 69
Регистрация: 22-10-04
Пользователь №: 956

|
а если нужно ждать несколько событий (флагов)?
|
|
|
|
|
Nov 28 2011, 09:37
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(aaarrr @ Nov 28 2011, 14:26)  Используйте семафоры и очереди, если нужно ожидать события. там где при получении флага нужно его сбросить, так и делаю. но, чем отличается флаг от семафора? тем что один поток один раз выставляет флаг, а второй получая его может сбросить, а может не изменять. получатель флага крутится в своем вайле, ждет флаг в блокировке. другой поток единожды выставил флаг, т.е. грубо говоря выставил "1" на порт EnabledTransmit, второй поток увидел что флаг стоит, т.е. ему разрешили работу и вышел из блокированного состояния. выполнил работу, проверил ещё раз флаг, ага, всё ещё стоит, значит ещё раз выполню работу. И так 2-ой поток выполняет одну и туже задачу до тех пор, пока первый поток не сбросит флаг в ноль. В freertos есть подобие флагов - это двоичный семафор. Но второй поток прочитает его один раз и семафор(флаг) сбросится. Можно ли в freertos захватить семафор не уничтожая его в очереди? Бывает что один флаг ждут 2 потока. Если делать на семафорах придётся 2 семафора заводить.
|
|
|
|
|
Dec 27 2014, 15:24
|
Участник

Группа: Свой
Сообщений: 43
Регистрация: 26-01-06
Из: Минск, Беларусь
Пользователь №: 13 651

|
эту старую тему нашёл поиском, т.к. тоже озадачился вопросом использования флагов в программе. оказывается, Event Bits (or flags) and Event Groups: Available From FreeRTOS V8.0.0
|
|
|
|
|
Jan 23 2015, 12:04
|
Частый гость
 
Группа: Участник
Сообщений: 180
Регистрация: 5-04-09
Пользователь №: 47 205

|
QUOTE (ViKo @ Jan 22 2015, 12:07)  Удивляюсь, что в такой распиаренной монстрообразной ОС до 8-й версии не было событий (флагов). Вот в Кейл РТОС - всегда были. Упс. А что в ней монстрообразного? Наоборот, она очень маленькая. Флагов не было потому, что они не так уж и нужны. В SafeRTOS вообще кроме очередей ничего нет - и никто не плачет.
|
|
|
|
|
Jan 23 2015, 12:40
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Keil CMSIS-RTOS: Description Limitations Defined Tasks Unlimited Active Threads 250 max Mailboxes Unlimited Semaphores Unlimited Mutexes Unlimited Signals 16 per thread Timer Callbacks Unlimited Code Space < 5.0 Kbytes RAM Space for Kernel 300 bytes + 128 bytes Main Stack RAM Space for a Thread StackSize + 52 bytes RAM Space for a Mailbox MaxMessages * 4 + 16 bytes RAM Space for a Semaphore 8 bytes RAM Space for a Mutex 12 bytes RAM Space for a User Timer 20 bytes Hardware Requirements SysTick timer or other hardware timer Thread context switch time < 2.6 usec @ 72 MHz Interrupt lockout time Not disabled SafeRTOS http://www.highintegritysystems.com/safertos/rtos-features/Typical ROM Requirements 6-15kB. Typical RAM Requirements 500 bytes. Typical Stack Requirements 400 bytes/task.
|
|
|
|
|
Jan 25 2015, 12:52
|
Частый гость
 
Группа: Участник
Сообщений: 180
Регистрация: 5-04-09
Пользователь №: 47 205

|
QUOTE (ViKo @ Jan 23 2015, 16:40)  Keil CMSIS-RTOS: Code Space < 5.0 Kbytes RAM Space for Kernel 300 bytes + 128 bytes Main Stack RAM Space for a Thread StackSize + 52 bytes SafeRTOS http://www.highintegritysystems.com/safertos/rtos-features/Typical ROM Requirements 6-15kB. Typical RAM Requirements 500 bytes. Typical Stack Requirements 400 bytes/task. Разница между Minimal и Typical очевидна, не так ли?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|