LINUX.ORG.RU

BuguRTOS 3.0.0

 , ,


2

5

13 марта состоялся релиз встраиваемой ОСРВ BuguRTOS 3.0.0.

После выпуска второй версии было получено сообщение от пользователя Endag с просьбой разъяснить использование примитивов синхронизации и сделать API понятнее для новых пользователей.

В ходе дальнейшей переписки был выявлен ряд ошибок и недостатков в ядре BuguRTOS и библиотеке native. Результатом стала переработка ядра и библиотеки.

В BuguRTOS 3.0.0 введены следующие изменения:

  • В API внесены изменения, облегчающие понимание использования возможностей ОС.
  • Ядро переработано с целью повышения производительности, в том числе внесены следующие изменения:
    • Добавлена возможность асинхронного IPC на атомарных операциях (если архитектура их не поддерживает, — используется эмуляция).
    • Для Cortex-M добавлена реализация поиска в битовой карте на инструкции CLZ.
    • Для Cortex-M изменён макрос BGRT_ISR, теперь обработчики аппаратных прерываний вытесняемы.
  • Исправлены три ошибки.
  • Добавлена возможность назначать для счётных семафоров процесс-хозяин, наследующий приоритеты заблокированных процессов.
  • Переработана структура файловой системы для платформенно-зависимого кода.

>>> Подробности

Тринадцитого
состоялся вышла очередная версия
ползователя
В BuguRTOS-3.0.0 введены следующие изменения
(всего исправлений: 2)
Проверено: Shaman007

OMFG

Kilte ★★★★★ ()
Ответ на: комментарий от mandala

вроде в /pr, я еще помню вытекал из тех тредов про первые альфа версии. Но пусть сам автор пояснит где он первый раз линканул упоминаниеп про сие поделие.

anonymous ()
Ответ на: комментарий от reprimand

УМВР на:

1.Atmega328p, Atmega128 и т.д., может не заработать на AVR, у которых используются RAMPX, RAMPY.
2.STM8: stm8s208xxx, stm8l15xxx (использовал в продакшене, разработано 6 видов изделий), должно работать без неожиданностей.
3.Cortex-M0,3,4f, фактически тестировал на stm32L15xxx/L05xxx/F4xxx, используется только периферия Ядра процессора (SCB, NVIC), должно работать без неожиданностей. Исключение - импортозамещенные микроконтроллеры, там горе-разработчики полазили в ядро, короче, бугурта хватает без BuguRTOS, пользователь гитхаба Endag подтвердит.
4. Cortex-M1 работает на ядрах с опцией OS extension, проверено как раз на русских импортозамещенных контроллерах.

shkolnick-kun ★★ ()
Последнее исправление: shkolnick-kun (всего исправлений: 2)

Хочу странного

А x86 она поддерживает? Например, можно ли на её основе сделать мини-ОС со специфической прикладнухой и запустить на обычном старом ПК?

Вот EmBox (ближайший конкурент сабжа) такое умеет.

anonymous ()
Ответ на: комментарий от frost_ii

Chibi — это целый SDK, разрабатываемый довольно большим сообществом.

Nutxx — это вообще Unix, у него другая ниша - портирование софта с больших компов на микроконтроллеры (см. OSMOCOMM, и всякие там управлялки беспилотниками, там прототипируют на компе и переносят на Cortex-M3/4f).

FreeRTOS — тоже превращается в SDK по типу Chibi

BuguRTOS — библиотека для прототипирования ОСРВ, на нее можно навернуть ядерные API Chibi, FreeRTOS, CMSIS/RTOS, tnkernel и так далее.

У Chibi и FreeRTOS ядерный код выполняется при запрещенных прерываниях, а тут вытесняемое ядро, куски с запрещенными прерываниями минимальны.

К тому же Chibi и FreeRTOS вроде бы не поддерживают STM8 (давно не смотрел в их исходники).

У Chibi и FreeRTOS наследование приоритетов сделано только для мьютексов, у BuguRTOS в native API — для всех примитивов синхронизации.

У Chibi наивная реализация наследования приоритетов, у FreeRTOS наследование приоритетов вообще сделано без поддержки вложенности.

В общем, у_нас_тут_своя_атмосфера.жпг

shkolnick-kun ★★ ()
Ответ на: Re: Хочу странного от MrClon

Всё перечисленное - очень большое. (Кроме, возможно. фридоса, но там слишком много костылей для обеспечения со старыми архитектурами.) А хочется ма-аленькую чи-истенькую системку.

hobbit ★★★★★ ()
Ответ на: комментарий от hobbit

интерес эстетический или практический? С практической точки зрения мне не кажется что осталось какой-то значимое количество живых x86-совместимых систем для которых бздя/линупс слишком жырны. Хотя я ХЗ в каком состоянии linux-rt, и что есть на этот счёт в бздях, может всё плохо

MrClon ★★★★★ ()

сделать API понятнее для новых пользователей.

Этого делать нельзя. Ты погляди в толксах сколько срачей - почему сделали так, а не так. Если будут понимать как сделано то обольют грязью. А так не понимают и красота.

dmxrand ()

Некоторые имена имеют префикс bgtr_, а некоторые — не имеют. Было бы неплохо упомянуть в GettingStartedEN , что означает этот префикс.

Manhunt ★★★★★ ()
Ответ на: комментарий от anonymous

Да хрень, -
1. 8-битники просты как папуас - могут только издавать сигналы, понимать палку и знать несколько примитивных интерфейсов из коробки.
2. Примеры работы на 8-битниках с интерфейсами описанны в датафакинщитах и стопятсот форумах.
3. ОС написанные для 8-битников из коробки в основном поддерживают только отладочные платы, если ты сам что то разводишь то придется патчить данную ОС или писать в bare-metal. Если ты тактируешься не с PLL а извне то уже придется чесать репу как это дело инициализировать в данной конкретной ОС.
4. Если в ты используешь что нибудь типа I2C, SPI, может CAN (не знаю есть ли 8-битники с его поддержкой), то наверняка ты внимательно почитаешь datasheet и сварганишь свой пример по его подобию и в случае чего всегда сможешь обратиться к этому документу что бы понять, а что не так работает, и задать вопрос в техподдержку, а если ты поставишь какой нибудь бугуртос то в случае проблем тебе придется ковырять его кишки что бы понять что там натворил автор.
5. Что бы выжать все из 8-битника тебе необходимо считать каждый байт используемой памяти, расчитывать время для каждой инструкции и это можно сделать реализуя проект исключительно в standalone-режиме. Считать сколько и чего кушает ОС + ваши алгоритмы на 8-битнике нормальные человеки не станут.

splinter ★★★★★ ()