Если код, используемый для ардуино, может быть встроен в постоянную вызываемую память, есть ли способ создать ОС для Arduino, которая запускается по вызову?
Эта мысль пришла мне в голову, когда я думал об умных часах.
Несмотря на то, что те, что я видел на YouTube, действительно хороши, они, похоже, не дают реального впечатления от настоящих умных часов, в которые встроена операционная система. Если какой-то код на Arduino C/c++ может быть скомпилирован в какой-то двоичный код, который работает при вызове из флэш-памяти (где находится основная программа), есть ли вероятность, что мы сможем сделать ОС для Arduino?
1 ответ
Лучший ответ:
Arduino на базе AVR — плохой выбор для написания "ОС" в современном понимании. Это слишком ограничено в ресурсах. У него недостаточно оперативной памяти, недостаточно флэш-памяти, он слишком медленный, у него нет защищенной памяти или подкачки, у него нет видеодисплея, у него нет файловой системы и т. д. и далее.
Если вы посмотрите на Apple II, что-то вроде Apple DOS или ProDos даст вам представление о том, что вы можете делать (без вывода видео).
Если вы хотите разработать что-то вроде смарт-часов, процессор ARM — гораздо лучший выбор. Он упаковывает гораздо больше производительности в небольшой корпус. Вы можете выбрать Arduino на базе ARM, но вы будете бороться с отсутствием ОС, отсутствием вытесняющей многозадачности и т. д.
В качестве альтернативы в Raspberry Pi есть почти все, что вам нужно. У него не так много вариантов аппаратного интерфейса, как у Arduino, но НАМНОГО больше вычислительной мощности. Точно так же UNIX является лучшим выбором в качестве основы для ОС для такого устройства. Это операционная система с защищенной памятью, предназначенная для работы на относительно скромном оборудовании.
Во всяком случае, у ARM будет * больше * вариантов аппаратного взаимодействия, поскольку в него встроены более современные периферийные устройства и протоколы., @Majenko
Извините, я путал ARM с Raspberry Pi. Я отредактировал свой ответ, чтобы рассматривать Arduino на базе ARM отдельно от Pis., @Duncan C
- Функция freeMemory() из библиотеки memoryfree не возвращает уменьшенное значение в arduino UNO
- Помогите уменьшить размер скетча!
- Приемлемо ли новое без удаления?
- Библиотека MemoryFree, демонстрирующая нестандартное поведение..!
- Получить доступ к EEPROM ATtiny с помощью кода Arduino?
- Глобальные переменные занимают много места в динамической памяти.
- Выделение строковой памяти Arduino
- Как очистить кучу памяти в esp32
см. Wear OS https://wearos.google.com, @Juraj
Конечно, но у вас очень мало места для написания этой ОС. У вас очень мало памяти для хранения этого кода. Так что это должна быть очень маленькая ОС с очень небольшой функциональностью., @Delta_G