Jump to content

ДионеОС

ДионеОС
Разработчик Встраиваемые системы ЭлеСофтРом
Написано в С
Рабочее состояние Снято с производства
Исходная модель Собственный
Первоначальный выпуск 2 февраля 2011 г .; 13 лет назад ( 2011-02-02 )
Финальный выпуск ARM Cortex-M3 / 29 марта 2013 г .; 11 лет назад ( 29 марта 2013 )
Маркетинговая цель Встраиваемые системы
Доступно в Английский
Платформы ТИ MSP430 , ARM Cortex-M3
ядра Тип В режиме реального времени
Официальный сайт www .elesoftrom .pl /ты

DioneOS (произносится /djoneos/) — это вытесняющая операционная многозадачная система реального времени (RTOS). [1] Система предназначена для микроконтроллеров , первоначально выпущенных 2 февраля 2011 года для Texas Instruments TI MSP430x , а затем 29 марта 2013 года для ARM Cortex-M3 . [2] Целевые платформы микроконтроллеров имеют ограниченные ресурсы, т. е. системную тактовую частоту в десятки МГц и объем памяти от десятков до нескольких сотен килобайт (КБ). ОСРВ адаптируется к таким условиям, обеспечивая компактное и эффективное изображение. Термин «эффективность» здесь означает минимизацию дальнейшей нагрузки на центральный процессор (ЦП), вызванной использованием системы. Согласно этому определению, система более эффективна, когда она потребляет меньше процессорного времени для выполнения своих внутренних частей, например, управления потоками .

Система DioneOS предназначена для автономных устройств, пользовательский интерфейс которых имеет ограниченные функции. Основные функции, предоставляемые системой, — это среда для создания многозадачной прошивки с помощью стандартных, хорошо известных концепций (например, семафоров , таймеров и т. д.). Из-за целевой области применения система использует интерфейс командной строки и не имеет графического интерфейса пользователя .

Модель памяти

[ редактировать ]

Компания Texas Instruments производит широкий спектр микроконтроллеров , использующих ядро ​​MSP430. В зависимости от версии процессор содержит разное количество флэш-памяти и оперативной памяти (ОЗУ), например, у MSP430f2201 — 1 КБ/128 КБ соответственно, а у MSP430f5438 — 256 КБ/16 КБ. Когда размер памяти превышает предел в 64 КБ, как это происходит, когда память не может уместиться в диапазоне 0–64 КБ, 16-битной адресации недостаточно. Из-за этого ограничения чипы с большей памятью оснащены расширенным ядром (MSP430x). Эта версия процессора имеет более широкие регистры (20-битные) и новые инструкции по их обработке.

При компиляции программист выбирает тип модели памяти ( ближнюю или дальнюю ), которая используется для FLASH и RAM воспоминания. Этот выбор определяет доступный диапазон памяти, следовательно, когда FLASH Если запрограммирован предел в 64 КБ, дальнюю необходимо использовать модель.

DioneOS поддерживает дальнюю модель для модулей кода, поэтому большая прошивка, использующая расширенные FLASH могут быть разработаны и запущены под контролем системы. Система использует модель ближней памяти для сегментов данных.

Управление потоками

[ редактировать ]

Прошивка, запускаемая в системе DioneOS, состоит из потоков, которые выполняются псевдопараллельно . Каждый поток имеет свой собственный уникальный приоритет, используемый для упорядочивания потоков, от самого важного к наименее важному. Значение приоритета потока определяет приоритет выполнения над другими.

В системе DioneOS поток может находиться в одном из следующих состояний:

  • Выполняется — поток в данный момент выполняется процессором,
  • Готов — поток готов к запуску,
  • Ожидание — поток заблокирован и ожидает какого-либо объекта синхронизации.

Поскольку в процессоре только одно ядро, только один поток может находиться в состоянии «Выполняется». Это поток, который имеет наивысший приоритет среди всех потоков, не находящихся в состоянии ожидания. Изменение состояния потока может быть вызвано:

  • запуск объекта, удерживающего поток,
  • неудачное получение уже заблокированного объекта (например, мьютекса, принадлежащего кому-то другому),
  • истекший тайм-аут,
  • изменение состояния другого потока, что может привести к вытеснению.

Система обрабатывает до 16 потоков, включая простаивающий с самым низким приоритетом. Неактивный поток должен быть всегда готов к выполнению и никогда не переключаться в состояние ожидания, поэтому не разрешается вызывать какие-либо функции , которые могли бы заблокировать его, изнутри этого потока. Поток ожидания можно использовать для определения общей загрузки системы.

Особенности системы

[ редактировать ]

Система DioneOS обеспечивает:

  • элементы для синхронизации: мьютексы и счетные семафоры , используемые для синхронизации потоков, передачи сигналов от ISR потоку и защиты общих ресурсов,
  • методы тайм-менеджмента: таймеры, спящий поток, таймауты ,
  • элементы связи, реализованные событиями и очередями, доступными в виде кольцевых буферов ,
  • управление памятью с помощью пула памяти , который выделяет память только блоками фиксированного размера, но не имеет проблем фрагментации, которые могут возникнуть при кучи использовании , это предусмотрено стандартными C. библиотеками . Также доступно регулярное распределение по куче с помощью malloc/ free
  • тестирование объектов поддержки: сигнализация событий на выводах чипа, критических исключений, маркировка объектов, помогающая обнаружить ошибки типа использования удаленного объекта или двойного освобождения памяти и т.д.

Переключение контекста

[ редактировать ]

Как было сказано в главе «Управление потоками», прошивка состоит из псевдопараллельных потоков. Каждый поток имеет свой собственный контекст, который содержит регистры ядра процессора, адрес последнего выполнения и частный стек. При переключении между потоками система сохраняет контекст остановленного потока и восстанавливает контекст запущенного. Такое сохранение состояния позволяет прервать выполнение потока и продолжить его, даже если между ними выполнялся другой поток. Обратите внимание, что вытеснение с последующим переключением контекста может произойти в любой момент, даже если в потоке не вызывается ни одна системная функция. Хотя это может произойти в неожиданном месте исполняемого кода, работа потока не искажается за счет системы и сохранения контекста. С точки зрения потока переключение может быть выполнено в фоновом режиме.

Переключение контекста является критической операцией в системе, и время ее выполнения определяет, насколько эффективна система. Благодаря этому переключение контекста в системе DioneOS было оптимизировано за короткое время. Самые важные части написаны на ассемблере , поэтому переключение можно осуществить за 12–17 мкс. [3] (для f osc =25 МГц).

В системе DioneOS переключение контекста может быть инициировано обработчиком прерывания (программа обслуживания прерывания). Это свойство полезно для перемещения обработки событий в поток и обычно реализуется в двухуровневой архитектуре:

  • обработчик прерывания – вызывается после того, как произошло аппаратное прерывание. В этой части прерывания отключены, поэтому выполнение не может продолжаться в течение длительного времени, иначе скорость реагирования системы будет нарушена. На этом уровне должны обрабатываться только задания, требующие быстрого реагирования на прерывание, все остальные должны передаваться на более высокий уровень.
  • более высокий уровень — обработка в отдельном потоке без блокировки прерываний; этот поток можно вытеснить. Ограничения здесь не такие жесткие, как в обработчике прерываний. Выполнение кода не блокирует систему.
  • Переключение контекста, измеренное от точки сигнализации в ISR до восстановления другого потока, занимает 10 мкс (для f osc =25 МГц) в системе DioneOS.

Конфигурация

[ редактировать ]

DioneOS имеет несколько параметров конфигурации, которые влияют на функции, вставленные в скомпилированный образ системы. Многие из них представляют собой переключатели исходного кода, которые собраны в файле конфигурации и могут быть изменены разработчиком прошивки . Благодаря этому можно контролировать дополнительные части тестирования. Если они включены, в систему встроена версия, обеспечивающая большее обнаружение необычных условий и информацию во время выполнения, которая помогает в процессе отладки. Когда ошибки обнаружены и устранены, эти дополнительные функции можно отключить для обеспечения полной производительности системы.

Пример фрагмента конфигурационного файла:

 [...] #define CFG_CHECK_OVERFLOW              /* overflow testing in semaphores/mutexes */ #define CFG_CHECK_LOCK                  /* lock issue detection caused by preemption conditions during scheduler lock */ #define CFG_LISTDEL_WITH_POISON         /* marking deleted items on the list in os_list1_del()*/ #define CFG_MEM_POOL_POISON_FILL 0xDAAB /* pattern for marking de-allocated memory items */ #define CFG_LISTDEL_POISON     0xABBA   /* pattern for marking removed list items */ #define CFG_CHECK_EMPTY_SEM_DESTROY     /* testing semaphore before destroy in os_sleep()*/  #define CFG_FILL_EMPTY_MEM_POOL         /* free memory fill with pattern */ [...]
  1. ^ Дагда, Таннер Мэтьюз, изд. (1 января 2012 г.). ДионеОС . Вент. ISBN  978-613-6-47060-3 .
  2. ^ Петр Романюк (14 ноября 2013 г.). «ДионеОС» . EleSoftRom Embedded Systems (на польском и английском языках) . Проверено 12 октября 2021 г.
  3. ^ время переключения зависит от конфигурации системы, большее значение появляется, если переключению мешает прерывание системного тика.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: bcf851239914fa9c6c8cc6c4e12892f1__1661552880
URL1:https://arc.ask3.ru/arc/aa/bc/f1/bcf851239914fa9c6c8cc6c4e12892f1.html
Заголовок, (Title) документа по адресу, URL1:
DioneOS - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)