Ответ 1
Я думаю, вам нужно взвесить свои варианты затрат здесь.
ARM + linux - это вариант, но вы будете платить очень высокие операционные издержки за такое простое (из вашего описания) множество функций. Вы не можете просто посмотреть на стоимость чипа ARM, но также должны учитывать внешнюю оперативную память, которая, скорее всего, потребуется, а также флэш, чтобы получить достаточно свободного места для запуска приложений ядра +.
ПРИМЕЧАНИЕ. Вы можете избежать внешних требований с помощью очень минимального ядра и простых приложений в сочетании с uC с большими внутренними ресурсами.
Второй вариант - это гораздо более простой микроконтроллер с облегченной ОС. Это сократит расходы на аппаратное обеспечение на CPU, и вы можете запустить что-то вроде этого без внешней RAM или флэш-памяти (в зависимости от оперативной памяти и требования к программному пространству)
третий вариант: на самом деле я ничего не вижу в ваших требованиях, которые требуют использования любой ОС. Основные файловые системы очень просты, например, есть даже драйверы FAT для 8-разрядных ПОС. Для взаимодействия с SD-картой требуется только порт SPI и минимальная внешняя схема.
Бит приложения может быть простым или сложным. Я создал системы вокруг микроконтроллеров PIC18, которые запускают веб-сервер и позволяют обновлять программы через простой экран загрузки, он просто сохраняет новую программу в EEPROM или флэш, перезагружается в загрузчик и копирует новую программу во внутреннюю память программы. Вероятно, вы могли бы разработать способ сделать это без перезагрузки с помощью совместной архитектуры многозадачности. В любом случае, программисты, пишущие приложения, нуждаются в знаниях об архитектуре и доступе к библиотекам/драйверу, который вы пишете. Лучше всего упростить это, чтобы предоставить как можно более простой API, и попытаться автоматизировать процесс сборки для них.
Третий вариант будет "самым дешевым" в плане аппаратного обеспечения, так как при обработке ваших приложений будет очень мало накладных расходов, что позволит вам уйти с минимальной вычислительной мощностью и памятью. Вероятно, для этого потребуется еще некоторое программирование/программное обеспечение с вашей стороны, но вам не потребуются почти те исследования, которые вам необходимо предпринять, чтобы получить Linux и запустить в дополнение к обучению написанию необходимых драйверов устройств в рамках парадигмы Linux.
Как всегда, вы должны включать затраты на разработку программного обеспечения в стоимость сборки устройства. Если вы планируете построить более 10 000 из них, то, скорее всего, это позволит снизить затраты на аппаратное обеспечение и поставить больше возможностей для разработки программного решения, которое позволяет этому оборудованию соответствовать целям дизайна. Если ваше здание 10 из них, вам лучше потратить дополнительные 15-20 долларов США на оборудование, если оно может сократить затраты на разработку программного обеспечения. Например, ARM с MMU с полной поддержкой ядра Linux и доступными драйверами устройств.
Я чувствую, что вы выбираете худшее из обоих миров на данный момент, вы платите дополнительно, чтобы получить uC, вы можете запускать Linux, но, делая это, вы также выбираете часть, которая, вероятно, будет самой сложной для получения linux и, прежде всего, не работал с linux на встроенных платформах.