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

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

Edit:

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

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

Ответы [ 6 ]

13 голосов
/ 06 октября 2009

Я думаю, вам нужно взвесить ваши варианты стоимости здесь.

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

2 голосов
/ 06 октября 2009

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

2 голосов
/ 06 октября 2009

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

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

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

2 голосов
/ 06 октября 2009

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

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

2 голосов
/ 06 октября 2009

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

0 голосов
/ 08 октября 2009

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

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

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

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

...