Raspberry Pi 3 поддерживает RTOS?

12

Я новичок в мире RTOS. Я планирую использовать RTOS на Raspberry Pi 3 (может быть FreeRTOS). Кто-нибудь может подсказать, какая ОСРВ будет полезна для начинающих?

Поскольку они еще не выпустили таблицу данных на BCM2837, возможно ли даже загрузить ОСРВ на Raspberry Pi 3?

Это поможет?

Сэнди
источник
1
Нет никаких причин, по которым вы не можете загрузить RTOS на RPi. Однако запрос рекомендации конкретной ОС не по теме.
Ченмунка
1
Можно ли знать, почему вам нужна ОСРВ? Что это даст вам, что ни одна другая ОС не будет? Каким требованиям в реальном времени вы должны соответствовать? Не могли бы вы уточнить, что делает RTOS хорошей для начинающих?
Джоан
1
@Chenmunka "Какая RTOS лучше для RPi?" («для начинающих» или иным образом) будет не по теме, поскольку основано на мнении. Это своего рода, но название буквально "Поддерживает ли RasPberry Pi 3 RTOS?" -> Как вы указываете, предположительно, да. Если остальная часть вопроса действительно подразумевает, что RTOS есть, тогда все в порядке - что, я думаю, должно быть природой любого реального ответа. Там по крайней мере один ... вроде.
Златовласка
@ Joan Мне нужна ОСРВ для встроенных решений для автомобильных приложений. Поскольку я новичок в RTOS, мне было интересно, можно ли использовать его с доступным оборудованием (rpi-3) дома .
песчаный
Взгляните на ядро ​​Ultibo. Это может быть именно то, что вам нужно. ultibo.org
Авра

Ответы:

7

Хотя оригинальный проект поддерживает только Raspberry Pi 1, я успешно скомпилировал этот форк на Raspberry Pi 2, и он также говорит о поддержке 3.

https://github.com/Forty-Tw0/RaspberryPi-FreeRTOS

Jordi
источник
Вы успешно перенесли его на Raspberry Pi3?
LandonZeKepitelOfGreytBritn
Просто сделал это на Pi2. Извините
Jordi
5

До сих пор я безуспешно тестировал следующую ОСРВ для Raspberry Pi 3, которая поможет кому-то не терять время (у меня было 3 месяца): FreeRTOS, Xenomai, RTEMS, BitThunder, ChibiOS / RT

Для ОС RISC это не ОСРВ.

Единственное, что я смог запустить на Raspberry Pi 3 до сих пор, это ядро ​​Fuchsia OS (Magenta), но оно находится на более ранней стадии и мало документировано.

Другой способ - создать свою ОСРВ самостоятельно, да, это возможно, используя ULTIBO CORE и следуя этим учебникам: - http://www.valvers.com/open-software/raspberry-pi/step01-bare-metal- программирование в cpt1 / - https://www.youtube.com/watch?v=TCfpb8M0WeQ

Махмуд Альмостафа РАББАХ
источник
1
Я успешно использовал Xenomai 2.6.5 на Raspberry Pi 3 (используя код из github.com/margro/linux ).
steviethecat
4

ARM, семейство ISA, используемое процессорами Broadcom во всех современных моделях Raspberry Pi, основано на RISC , для которого написана RISC OS . RISC OS, я думаю, преобладала на устройствах ARM в течение их первого десятилетия, так как та же британская техническая компания (Acorn) изначально проектировала как ARM, так и RISC OS. На самом деле, ARM изначально обозначало «Acorn RISC machine», и отчасти это объясняется тем, что Raspberry Pi называют тем, чем он является, из-за традиции в Великобритании называть компьютерные системы после фруктов или орехов.

RISC OS не является настоящей операционной системой реального времени, однако она использует совместную многозадачность , то есть вы можете запустить процесс, который может добровольно отказаться от сдачи себя другому процессу. Какие последствия это может иметь, я не знаю, но я бы предположил, что:

  • Вы можете настроить вещи так, чтобы это было без проблем, но это может включать ограничения на то, что ОС может выполнять (например, в отношении работы в сети).

  • Переключение контекста в режим ядра будет происходить только из-за системных вызовов, выполняемых процессом для достижения его целей.

Это довольно близко к функциональности в реальном времени, в зависимости от того, как «в реальном времени» вам нужно получить. Кроме того, есть некоторые подтверждения того, что ОС RISC работает на Pi 3 .

Златовласка
источник
Спасибо за ответ. Кажется, что действительно нет необходимости использовать другую ОС для rpi-3, поскольку живущая ОС также работает в режиме реального времени. Мое приложение предназначено для встроенного оборудования, которое не может иметь ОС на основе Linux, например raspbian, из-за ограничений памяти. Вопрос в том, могу ли я загрузить другую RTOS с небольшим объемом памяти на rpi-3, чтобы привыкнуть к миру RTOS? Есть ли ограничения по rpi-3?
песчаный
1
Извините: объясню, это не дискуссионный форум . Пожалуйста, возьмите тур снова и обратите внимание на часть «Получите ответы на практические, подробные вопросы» . Похоже, вы оставили детали в своем вопросе, предлагая другим людям тратить свое время на предоставление ответов, которые не являются тем, что вы искали, чтобы вы могли сузить их после обсуждения стиля. Это не так, как работает SE. Если у вас другой вопрос, задайте другой вопрос. Не редактируйте этот, чтобы изменить первоначальный смысл, иначе я его закрою. Спасибо.
Златовласка
1
Однако я дам вам совет: если вы ищете ОС, которая будет работать в системах с объемом памяти менее 1 МБ, вы должны сначала выяснить, какие у вас есть варианты. Простой случайный выбор ОС в реальном времени «для практики» может в конечном итоге вас ничему не научить в том, что вам действительно нужно использовать. Так что не трать свое время. Узнайте, что вам нужно использовать, затем спросите, можете ли вы использовать его на пи и т. Д.
Златовласка
0

Поскольку определение ОСРВ варьируется в зависимости от приложения, обычно это компьютер, претендующий на что-то гораздо более простое, ОС RISC представляет собой ОСРВ для приложений средней сложности и не обязательно для приложений высокой сложности, хотя ОСРВ очень сложной версии. звучит как противоречие в терминах. Пример Махмуда Альмостафы RABBAH относится к отсутствию ОС и запуску однозадачной программы прямо из загрузчика, который также не является ОСРВ.

Единственный разумный способ понять это - разделить определение RTOS на три уровня:

  • Низкая сложность - это что-то вроде стиральной машины или регистратора данных, и вам, вероятно, лучше использовать более простое аппаратное обеспечение, например Arduino, или, может быть, более простой MCU или даже просто последовательную логику, во-первых. Он будет потреблять меньше энергии и беспокоиться будет гораздо меньше: никогда не усложняйте вещи, чем они должны быть.

  • Высокая сложность была бы чем-то вроде полноценной многозадачной системы, а не ОСРВ. Вероятно, было бы лучше запустить ваш графический интерфейс на отдельном устройстве, если вы этого хотите. Также высокой сложностью может быть мониторинг процессов, которые вызывают другие процессы, и некоторые из них должны быть расставлены по приоритетам, но, опять же, вам лучше с какой-то параллельной обработкой, или она не в состоянии отвечать в реальном времени.

  • Средняя сложность может возникнуть в тех случаях, когда вам нужны интерфейсы, которые может предоставить обычная ОС, например USB, и, возможно, небольшой дисплей на выходе, но вы хотите обрабатывать поток данных и не прерываться ничем. Это звучит как уровень автомобильного приложения.

    Для этого вы можете скомпилировать что-то без ОС, используя хост-машину для ее разработки, или вы можете использовать версию ОС RISC, которая загружается непосредственно в BASIC и разрабатывается на целевой машине, что обычно проще.

    Это запустит одну задачу, которая может быть достаточно быстрой для опроса ряда событий, без прерывания другими вещами. Аппаратные прерывания по-прежнему будут выполняться, если они не отключены (это довольно просто сделать), и они необходимы для того, чтобы заставить дисплей / USB и т. Д. Работать. Другие аппаратные прерывания запускают таймеры и ввод-вывод, которые вы, возможно, не используете.

Еще одно преимущество ОС RISC в приложениях RTOS: вы можете использовать только те модули, которые вам нужны, что не имеет смысла в традиционных приложениях с графическим интерфейсом и использовалось, например, STD / AdvantageSix [1], хотя они используют термин «встроенные системы». вместо "RTOS". Преимущества, которые это дает, - это упрощенный дизайн, более низкие требования к энергопотреблению, более низкое использование памяти и более быстрое время загрузки (некоторые интерфейсы устройств ввода-вывода требуют мини-загрузки сами, и ОС должна участвовать в этом, хотя временные рамки обычно слишком малы, чтобы замечать ).

Я надеюсь, что оба заполняют некоторые пробелы в информации выше, и проясняют пробелы в моих собственных знаниях.

[1] http://www.advantagesix.co.uk/about_us.html (Другие примеры из памяти больше не доступны в Интернете.)

Робин Ходсон
источник