Минимальная конфигурация для запуска встроенного Linux на ARM-процессоре?

Мне нужно создать встроенный ARM-дизайн, который будет требовать многого, что сделает встроенная Linux. Однако дизайн является дорогостоящим и не требует огромного количества лошадиных сил. В основном будет разговаривать с последовательными интерфейсами. В идеале я хотел бы использовать один из ARM с низким уровнем конца. Какова самая низкая конфигурация ARM, с которой вы успешно использовали встроенную Linux.

Edit:

Приложению нужна файловая система на каком-то флэш-устройстве и возможность запуска приложений для обработки данных. Некоторые из приложений могут быть написаны другими, чем я. Мне также нужно иметь возможность загружать новые приложения или обновлять старые приложения, используя последовательные порты для приема приложений.

Когда я смотрел на другие встроенные ОС, они, похоже, были скорее решением для потоковой обработки в реальном времени, чем возможностью запуска приложений. Я открыт к тому, что когда-либо будет выполнено.

Ответ 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 на встроенных платформах.

Ответ 2

У меня был успех даже на ARM7TDMI, поэтому я не думаю, что у вас будут проблемы. Если у вас есть система с низкими требованиями, вы можете использовать любой вид в реальном времени в режиме реального времени и иметь гораздо лучший опыт, чем вы могли бы заставить Linux работать.

Ответ 3

Я использовал TS-7200 в течение примерно пяти лет для запуска веб-сервера и почтового сервера с использованием Debian GNU Linux. Он составляет 200 МГц и имеет 32 МБ ОЗУ и вполне адекватен этим задачам. Он имеет встроенный последовательный порт. Он основан на ARM920T.

Это будет излишним для вашей работы; Я упоминаю об этом, поэтому у вас есть другая точка данных.

Ответ 4

ucLinux разработан специально для целей с ограниченными ресурсами, но, возможно, более важно для целей без MMU.

Однако у вас есть веская причина использовать Linux в такой системе, а не в небольшом исполнителе в реальном времени. Некоторые из них, легко доступные драйверы и стеки протоколов для сложного оборудования и поддержки существующего наследия POSIX или открытого исходного кода, возможно, несколько. Однако, если вам это не нужно, Linux по-прежнему большой, и вы можете разбазаривать ресурсы без реальной выгоды. В большинстве случаев вам по-прежнему потребуется отключить чип SDRAM и Flash, если вы выбрали Linux любого вкуса.

Я бы не рассматривал серийный ввод-вывод как "сложное оборудование", поэтому, если вы не используете сложный, но стандартный протокол, ваше краткое описание, похоже, не гарантирует использование Linux IMO

Ответ 5

В течение нескольких лет я использовал gumstix для создания прототипов и тестирования, и у меня были хорошие результаты. Я не знаю, является ли процессор, который они используют (Intel PXA255 на моей плате), считается недорогим, но вся линейка Verdex кажется мне довольно дешевой для адаптируемого устройства.

Ответ 6

Мой DLINK DIR-320 маршрутизатор запускает Linux внутри.

И я знаю некоторых разнорабочих, мигающих им с помощью программы "Опт" и подключения USB-хаба, жестких дисков, USB-флеш-памяти и т.д.

Это недорогое готовое к использованию "платформа". (Если вам не требуется массовое производство). Но, возможно, более мощный, чем вам нужно.

Кроме того, он может быть настроен без проводов через веб-интерфейс даже через вашу КПК:)