Я новичок в мире RTOS. Я планирую использовать RTOS на Raspberry Pi 3 (может быть FreeRTOS). Кто-нибудь может подсказать, какая ОСРВ будет полезна для начинающих?
Поскольку они еще не выпустили таблицу данных на BCM2837, возможно ли даже загрузить ОСРВ на Raspberry Pi 3?
Ответы:
Хотя оригинальный проект поддерживает только Raspberry Pi 1, я успешно скомпилировал этот форк на Raspberry Pi 2, и он также говорит о поддержке 3.
https://github.com/Forty-Tw0/RaspberryPi-FreeRTOS
источник
До сих пор я безуспешно тестировал следующую ОСРВ для 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
источник
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 .
источник
Поскольку определение ОСРВ варьируется в зависимости от приложения, обычно это компьютер, претендующий на что-то гораздо более простое, ОС RISC представляет собой ОСРВ для приложений средней сложности и не обязательно для приложений высокой сложности, хотя ОСРВ очень сложной версии. звучит как противоречие в терминах. Пример Махмуда Альмостафы RABBAH относится к отсутствию ОС и запуску однозадачной программы прямо из загрузчика, который также не является ОСРВ.
Единственный разумный способ понять это - разделить определение RTOS на три уровня:
Низкая сложность - это что-то вроде стиральной машины или регистратора данных, и вам, вероятно, лучше использовать более простое аппаратное обеспечение, например Arduino, или, может быть, более простой MCU или даже просто последовательную логику, во-первых. Он будет потреблять меньше энергии и беспокоиться будет гораздо меньше: никогда не усложняйте вещи, чем они должны быть.
Высокая сложность была бы чем-то вроде полноценной многозадачной системы, а не ОСРВ. Вероятно, было бы лучше запустить ваш графический интерфейс на отдельном устройстве, если вы этого хотите. Также высокой сложностью может быть мониторинг процессов, которые вызывают другие процессы, и некоторые из них должны быть расставлены по приоритетам, но, опять же, вам лучше с какой-то параллельной обработкой, или она не в состоянии отвечать в реальном времени.
Средняя сложность может возникнуть в тех случаях, когда вам нужны интерфейсы, которые может предоставить обычная ОС, например USB, и, возможно, небольшой дисплей на выходе, но вы хотите обрабатывать поток данных и не прерываться ничем. Это звучит как уровень автомобильного приложения.
Для этого вы можете скомпилировать что-то без ОС, используя хост-машину для ее разработки, или вы можете использовать версию ОС RISC, которая загружается непосредственно в BASIC и разрабатывается на целевой машине, что обычно проще.
Это запустит одну задачу, которая может быть достаточно быстрой для опроса ряда событий, без прерывания другими вещами. Аппаратные прерывания по-прежнему будут выполняться, если они не отключены (это довольно просто сделать), и они необходимы для того, чтобы заставить дисплей / USB и т. Д. Работать. Другие аппаратные прерывания запускают таймеры и ввод-вывод, которые вы, возможно, не используете.
Еще одно преимущество ОС RISC в приложениях RTOS: вы можете использовать только те модули, которые вам нужны, что не имеет смысла в традиционных приложениях с графическим интерфейсом и использовалось, например, STD / AdvantageSix [1], хотя они используют термин «встроенные системы». вместо "RTOS". Преимущества, которые это дает, - это упрощенный дизайн, более низкие требования к энергопотреблению, более низкое использование памяти и более быстрое время загрузки (некоторые интерфейсы устройств ввода-вывода требуют мини-загрузки сами, и ОС должна участвовать в этом, хотя временные рамки обычно слишком малы, чтобы замечать ).
Я надеюсь, что оба заполняют некоторые пробелы в информации выше, и проясняют пробелы в моих собственных знаниях.
[1] http://www.advantagesix.co.uk/about_us.html (Другие примеры из памяти больше не доступны в Интернете.)
источник