Рубрика «осрв» - 2

Вся правда об ОСРВ. Статья #18. Группы флагов событий: вспомогательные службы и структуры данных - 1

Эта статья продолжает описывать группы флагов событий.

Предыдущие статьи серии:

Статья #17. Группы флагов событий: введение и базовые службы
Статья #16. Сигналы
Статья #15. Разделы памяти: службы и структуры данных
Статья #14. Разделы памяти: введение и базовые службы
Статья #13. Структуры данных задач и неподдерживаемые вызовы API
Статья #12. Службы для работы с задачами
Статья #11. Задачи: конфигурация и введение в API
Статья #10. Планировщик: дополнительные возможности и сохранение контекста
Статья #9. Планировщик: реализация
Статья #8. Nucleus SE: внутреннее устройство и развертывание
Статья #7. Nucleus SE: введение
Статья #6. Другие сервисы ОСРВ
Статья #5. Взаимодействие между задачами и синхронизация
Статья #4. Задачи, переключение контекста и прерывания
Статья #3. Задачи и планирование
Статья #2. ОСРВ: Структура и режим реального времени
Статья #1. ОСРВ: введение.

Читать полностью »

Вся правда об ОСРВ. Статья #16. Сигналы - 1

В этой статье будут рассмотрены сигналы, которые являются простейшими механизмами взаимодействия между задачами в Nucleus SE. Они предоставляют малозатратный способ передачи простых сообщений между задачами.
Читать полностью »

Вся правда об ОСРВ. Статья #15. Разделы памяти: службы и структуры данных - 1

В этой статье мы продолжаем рассматривать разделы памяти ОСРВ.

Nucleus RTOS имеет три вызова API, предоставляющих служебные функции, связанные с пулами разделов памяти: возвращение информации о пуле разделов, возвращение числа пулов разделов в приложении и возвращение указателей на все пулы разделов в приложении. Первые два вызова реализованы в Nucleus SE.
Читать полностью »

Добрый день! Несколько дней назад столкнулся с небольшой проблемой в нашем проекте — в обработчике прерывания gdb неправильно выводил stack trace для Cortex-M. Поэтому в очередной раз полез выяснять, а какими способами можно получать stack trace для ARM? Какие флаги компиляции влияют на возможность трассировки стека на ARM? Как это реализовано в ядре Linux? По результатам исследований решил написать эту статью.
Читать полностью »

Вся правда об ОСРВ. Статья #10. Планировщик: дополнительные возможности и сохранение контекста - 1

В предыдущей статье мы рассматривали различные типы планирования, поддерживаемые ОСРВ, и соответствующие возможности в Nucleus SE. В этой статье рассмотрим дополнительные возможности планирования в Nucleus SE и процесс сохранения и восстановления контекста.
Читать полностью »

Ответы со стенда Embox на популярные вопросы с IT-фестиваля TechTrain - 1
Добрый день!

Embox недавно принимал участие в IT-фестивале TechTrain.

Поток посетителей у нашего стенда был очень большим! А мы, к сожалению, не сделали раздаточные материалы с описанием нашего проекта. И некоторые ушли, не успев понять, что же у нас происходит. Нам задавали много однотипных вопросов, и мы решили опубликовать небольшую статью для того, чтобы на них ответить.
Читать полностью »

Мы открываем сбор средств на подготовку ОСРВ МАКС к бесплатному массовому использованию.

image

Новая версия позволит сторонним разработчикам добавлять в систему модули, а лицензия не будет ограничивать коммерческое применение.Читать полностью »

Вся правда об ОСРВ. Статья #9. Планировщик: реализация - 1

Основные принципы работы планировщиков ОСРВ были рассмотрены в статье «Задачи и планирование». В настоящей статье мы рассмотрим возможности, которые предлагает Nucleus RTOS, а также более подробно те, которые предоставляет Nucleus SE.

Читать полностью »

imageДобрый день! Сегодня я хочу рассказать вам как написать минимальную программу, которая запустится на ARM Cortex-M3 и при этом напечатает “Hello, World!”. Постараемся разобрать по шагам необходимый минимум, который нам для этого потребуется. Запускать будем на эмуляторе QEMU. Поэтому любой желающий может воспроизвести, даже если у него нет под рукой железки.

Итак, поехали!
Читать полностью »

Идентификаторы задач (Task Identifiers)


Необходимо уметь идентифицировать каждую задачу в системе. Это требование важно и для других объектов ядра, но в задачах есть некоторые нюансы, которые соответствуют теме данной статьи.

Вся правда об ОСРВ от Колина Уоллса. Статья #4. Задачи, переключение контекста и прерывания - 1

Разработчики ОСРВ используют разные подходы к идентификации задач, но можно выделить четыре общие стратегии:

  • Задача идентифицируется с помощью указателя (pointer) на свой «блок управления» (“control block”). Указатели всегда уникальны, а также удобны в использовании, поскольку доступ к блоку управления требуется при многих вызовах API. Это подразумевает, что все данные о задаче хранятся в оперативной памяти (RAM), что может быть неэффективно. Указатель обычно занимает около 32 бит памяти.
  • Задача может быть определена с помощью произвольного «порядкового числа» (index number). Это значение может пригодиться при предоставлении доступа к записям в определенных таблицах. Такой идентификатор может занимать восемь или меньше бит памяти, в зависимости от ограничений по количеству задач, которые поддерживаются ОСРВ.
  • Некоторые ОСРВ разрешают только одну задачу на каждый уровень приоритета и, следовательно, используют приоритет для уникальной идентификации задачи. Это означает, что приоритет задачи не может быть изменен. Этот подход является разновидностью предыдущего подхода.
  • Задачи могут иметь имена, которые являются символьными строками (character string). Это может быть полезно для отладки, но вряд ли будет эффективным средством уникальной идентификации задачи. ОСРВ, которые поддерживают именование задач, как правило, имеют дополнительный идентификатор (например, указатель), который используется вызовами API и т. д. Для большинства встраиваемых систем текстовые имена — это накладные расходы; хороший отладчик позволяет называть их локально на хосте.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js