LightElf 0 27 января, 2015 Опубликовано 27 января, 2015 · Жалоба Вижу только разницу между 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 ровно такая же ерунда. Берется вырожденный случай, никому не нужный, и подается как великое достижение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 27 января, 2015 Опубликовано 27 января, 2015 · Жалоба Для Кейла это как раз Minimal. ... Дальше ковырять мне просто лениво. Уверен, со всеми прочими параметрами Keil ровно такая же ерунда. Берется вырожденный случай, никому не нужный, и подается как великое достижение. Как это "как раз Minimal"? Если стоит знак меньше, то это значит, что больше не будет, а меньше - возможно. Что-то у вас логика не так работает. И я считать не хочу. Я вижу, что написано, мне достаточно. Причем, я же привел пример урезанной SafeRTOS. А FreeRTOS несколько больше будет, верно? Меня устраивает Keil, а FreeRTOS не нужна. Я посмотрел бы еще на самое мелкое что-нибудь. Минималист. А стек задачи - вообще не поддается принудительной установке. У меня из функции в функцию скачет программа, сколько стека выест...? В отладчике вижу в процентах, что весь не съел, вот и хорошо. Конкретно - от 128 до 320 байтов, 5 задач, по умолчанию задал 256 байтов. Включена проверка переполнения, если переполнение наступит, загорится светодиод. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aurochs 0 28 января, 2015 Опубликовано 28 января, 2015 · Жалоба Меня устраивает Keil, а FreeRTOS не нужна. Поздравляю Вас от всей души. Непонятно только зачем заходить в форум по FreeRTOS, чтобы об этом рассказывать :bb-offtopic: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LightElf 0 29 января, 2015 Опубликовано 29 января, 2015 (изменено) · Жалоба И я считать не хочу. Я вижу, что написано, мне достаточно. На сарае написано неприличное слово, но внутри таки лежат дрова. Причем, я же привел пример урезанной SafeRTOS. А FreeRTOS несколько больше будет, верно? Нет. Зависит от того, какие примитивы будете использовать. Обойдесь функционалом, имеющимся в SafeRTOS - будет также или меньше. У меня из функции в функцию скачет программа, сколько стека выест...? Посчитать не пробовали? Рекомендую, помогает. Изменено 29 января, 2015 пользователем LightElf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gridinp 3 30 июля, 2019 Опубликовано 30 июля, 2019 · Жалоба Всем доброго утра, в продолжение старой темы. Подскажите, если кто знает, нигде не нашёл в описании. Если несколько задач ждут один и тот же флаг, то есть одинаковый бит в одной и той же event group, после выполнения xEventGroupSetBits все ждущие задачи разблокируются? Перевожу программу с Analog Devices VDK и мне нужен аналог DeviceFlag Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KiV 0 30 июля, 2019 Опубликовано 30 июля, 2019 · Жалоба Именно так, все задачи разблокируются. Это поведение описано в "FreeRTOS Reference Manual" и в "Mastering the FreeRTOS Real Time Kernel" в разделе "Event Groups". Оба документа есть на официальном сайте. Цитата Event groups are another feature of FreeRTOS that allow events to be communicated to tasks. Unlike queues and semaphores: * Event groups allow a task to wait in the Blocked state for a combination of one of more events to occur. * Event groups unblock all the tasks that were waiting for the same event, or combination of events, when the event occurs. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gridinp 3 30 июля, 2019 Опубликовано 30 июля, 2019 · Жалоба 1 hour ago, KiV said: Именно так, все задачи разблокируются. Это поведение описано в "FreeRTOS Reference Manual" и в "Mastering the FreeRTOS Real Time Kernel" в разделе "Event Groups". Оба документа есть на официальном сайте. Спасибо, большое, нашёл в pdf-е, а я читал help на сайте Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a_electronic 0 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба On 11/28/2011 at 7:11 AM, juvf said: А как флаги делать в FreeRTOS? Например один поток после определённых действий выставил флаг, второй читает. Если флаг выставлен в "1", то второй поток выполняет действие, потом опять проверяет флаг, если в 1, то ещё раз действие и т.д. В FreeRTOS не нашел флагов. можно с помощью костыля флаг в фрииртос организовать..... завести глобальную переменную типа bool и оградить к ней доступ через мютекс. А можно как-то по проще и элегантней это сделать? Не совсем понятно, а точнее совсем непонятно, что должен делать тред-приемник. Он должен проснуться по определенному флагу о пошуршать, после чего опять уснуть или он постоянно шуршит, иногда посматривая на флаг? В первом случай есть объект Event. В нем как раз есть пачка вожделенных флагов, которые тред-передатчик может установить, как надо, пробудив тред-приемник, который сможет на низ посмотреть и сделать что надо. Второй случай явно кривой и такого стоит избегать в вытесняющей многозадачке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 24 февраля, 2021 Опубликовано 24 февраля, 2021 · Жалоба 19.02.2021 в 13:40, a_electronic сказал: Не совсем понятно, а точнее совсем непонятно, что должен делать тред-приемник. Он должен проснуться по определенному флагу о пошуршать, после чего опять уснуть или он постоянно шуршит, иногда посматривая на флаг? В первом случай есть объект Event. В нем как раз есть пачка вожделенных флагов, которые тред-передатчик может установить, как надо, пробудив тред-приемник, который сможет на низ посмотреть и сделать что надо. Второй случай явно кривой и такого стоит избегать в вытесняющей многозадачке. Не совсем понятно, а точнее совсем непонятно зачем отвечать на вопросы ДЕСЯТИ летней давности и предлагать решения, которые были не доступны в 2011 году? 10 лет назад во FreeRTOS не было Event. 27.12.2014 в 20:24, kovalio сказал: оказывается, Event Bits (or flags) and Event Groups: Available From FreeRTOS V8.0.0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться