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