реклама на сайте
подробности

 
 
> Флаги в FreeRTOS
juvf
сообщение Nov 28 2011, 05:11
Сообщение #1


Профессионал
*****

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



А как флаги делать в FreeRTOS? Например один поток после определённых действий выставил флаг, второй читает. Если флаг выставлен в "1", то второй поток выполняет действие, потом опять проверяет флаг, если в 1, то ещё раз действие и т.д.

В FreeRTOS не нашел флагов. можно с помощью костыля флаг в фрииртос организовать..... завести глобальную переменную типа bool и оградить к ней доступ через мютекс. А можно как-то по проще и элегантней это сделать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Jan 23 2015, 12:40
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 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.
Go to the top of the page
 
+Quote Post
LightElf
сообщение Jan 25 2015, 12:52
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 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 очевидна, не так ли?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 25 2015, 18:57
Сообщение #4


Универсальный солдатик
******

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



Цитата(LightElf @ Jan 25 2015, 15:52) *
Разница между Minimal и Typical очевидна, не так ли?

Вижу только разницу между Maximal и Typical, и не в пользу последней. А вы?
Go to the top of the page
 
+Quote Post
LightElf
сообщение Jan 27 2015, 09:23
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 180
Регистрация: 5-04-09
Пользователь №: 47 205



QUOTE (ViKo @ Jan 25 2015, 22:57) *
Вижу только разницу между Maximal и Typical, и не в пользу последней. А вы?

Для Кейла это как раз Minimal.
Ну и потом: под задачу RTX требует 52 байта + стек. FreeRTOS, если отключить чисто отладочные фишки, 40 байт на задачу плюс стек. Где меньше?
Читаем мануал: Stack size used by RTX kernel is configured in STARTUP.S. Minimum size is 128 bytes, however 256 bytes is recommended when interrupts are used.
То есть RAM Space for Kernel 300 bytes + 128 bytes Main Stack превращается в 300+256, если ориентироваться не на рекламу. Сравниваем с FreeRTOS Typical RAM Requirements 500 bytes и все становится не так однозначно.
Дальше ковырять мне просто лениво. Уверен, со всеми прочими параметрами Keil ровно такая же ерунда. Берется вырожденный случай, никому не нужный, и подается как великое достижение.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 27 2015, 09:53
Сообщение #6


Универсальный солдатик
******

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



Цитата(LightElf @ Jan 27 2015, 12:23) *
Для Кейла это как раз Minimal.
...
Дальше ковырять мне просто лениво. Уверен, со всеми прочими параметрами Keil ровно такая же ерунда. Берется вырожденный случай, никому не нужный, и подается как великое достижение.

Как это "как раз Minimal"? Если стоит знак меньше, то это значит, что больше не будет, а меньше - возможно. Что-то у вас логика не так работает.
И я считать не хочу. Я вижу, что написано, мне достаточно. Причем, я же привел пример урезанной SafeRTOS. А FreeRTOS несколько больше будет, верно?
Меня устраивает Keil, а FreeRTOS не нужна. Я посмотрел бы еще на самое мелкое что-нибудь. Минималист.
А стек задачи - вообще не поддается принудительной установке. У меня из функции в функцию скачет программа, сколько стека выест...? В отладчике вижу в процентах, что весь не съел, вот и хорошо.
Конкретно - от 128 до 320 байтов, 5 задач, по умолчанию задал 256 байтов. Включена проверка переполнения, если переполнение наступит, загорится светодиод.
Go to the top of the page
 
+Quote Post
LightElf
сообщение Jan 29 2015, 11:07
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 180
Регистрация: 5-04-09
Пользователь №: 47 205



QUOTE (ViKo @ Jan 27 2015, 13:53) *
И я считать не хочу. Я вижу, что написано, мне достаточно.

На сарае написано неприличное слово, но внутри таки лежат дрова.
QUOTE (ViKo @ Jan 27 2015, 13:53) *
Причем, я же привел пример урезанной SafeRTOS. А FreeRTOS несколько больше будет, верно?

Нет. Зависит от того, какие примитивы будете использовать. Обойдесь функционалом, имеющимся в SafeRTOS - будет также или меньше.
QUOTE (ViKo @ Jan 27 2015, 13:53) *
У меня из функции в функцию скачет программа, сколько стека выест...?

Посчитать не пробовали? Рекомендую, помогает.

Сообщение отредактировал LightElf - Jan 29 2015, 11:11
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- juvf   Флаги в FreeRTOS   Nov 28 2011, 05:11
- - aaarrr   Цитата(juvf @ Nov 28 2011, 09:11) завести...   Nov 28 2011, 06:03
|- - juvf   Цитата(aaarrr @ Nov 28 2011, 12:03) А как...   Nov 28 2011, 07:51
- - aaarrr   Используйте семафоры и очереди, если нужно ожидать...   Nov 28 2011, 08:26
|- - juvf   Цитата(aaarrr @ Nov 28 2011, 14:26) Испол...   Nov 28 2011, 09:37
- - Grape   а если нужно ждать несколько событий (флагов)?   Nov 28 2011, 09:08
|- - aaarrr   Цитата(Grape @ Nov 28 2011, 13:08) а если...   Nov 28 2011, 09:16
- - RCray   xQueueReceive удаляет элемент из очереди, а xQueue...   Nov 29 2011, 16:25
- - //Nikson   эту старую тему нашёл поиском, т.к. тоже озадачилс...   Dec 27 2014, 15:24
- - gridinp   Чтобы ожидать несколько событий сразу, надо объеди...   Jan 22 2015, 07:30
- - ViKo   Удивляюсь, что в такой распиаренной монстрообразно...   Jan 22 2015, 08:07
|- - LightElf   QUOTE (ViKo @ Jan 22 2015, 12:07) Удивляю...   Jan 23 2015, 12:04
- - Aurochs   Цитата(ViKo @ Jan 27 2015, 11:53) Меня ус...   Jan 28 2015, 16:03


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 01:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01425 секунд с 7
ELECTRONIX ©2004-2016