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