Сбалансированный процессор /SOC (?) Для небольшой встроенной системы под управлением Linux

Итак, я знаю, что ядро ​​Linux довольно "тяжелое", если рассматривать встроенные системы меньшего масштаба, но в настоящее время мы работаем из двух человек, пытаясь понять, как создать собственную встроенную систему. Я отвечаю за все программное обеспечение (другой парень - специалист по программному обеспечению), и поэтому я хотел бы как можно больше использовать существующие библиотеки и фреймворки, и я хотел бы поделиться некоторыми идеями с гуру вокруг Вот.

Я довольно комфортно чувствую себя в Linux, но процесс загрузки и инициализации для меня является новым, и мне нужно довольно скоро в этом разобраться. Любые книжные рекомендации также приветствуются! Я не проектировал никаких встраиваемых систем раньше... Имею только несколько плат разработчиков ARM (beagleboard и raspberry pi).

На данный момент у меня уже есть прототип программного обеспечения, работающего на beagleboard, и теперь мы думаем, как минимизировать стоимость и создать что-то свое.

Это система, подключенная к Интернету, и мне нужно запустить крошечный веб-сервер с некоторой поддержкой сценариев. Мудрая производительность, я не думаю, что она должна быть слишком мощной.

Я хотел бы свести к минимуму всю работу загрузчика и т. Д., Так как я работаю в команде с одним человеком и просто сосредоточился на самом приложении. Конечно, я понимаю, что для этого мне нужно настроить наше ядро, но именно поэтому я подумал, что было бы неплохо выбрать несколько SoC, так как они обычно имеют готовые Linux и загрузчики.

Сначала я подумал, что Cirrus EP9301 будет идеальным, так как он выглядит хорошим пакетом и не очень дорогим. Но кажется, что он уже в конце срока службы, и поддержка этого очень плохая (люди из форумы перистые постоянно жалуются на это).

Есть ли хороший выбор для такого проекта, который позволил бы нам "легко" запустить и запустить ядро ​​Linux, сохраняя при этом какую-то приличную спецификацию (надеюсь, 20 долларов США или около того)?

3 ответа

Решение

Ваш аппаратный парень должен уже знать это, но идти с существующим эталонным дизайном. Возьмите raspberry pi, beagleboard/bone, open-rd или любое количество других существующих систем и клонируйте нужную вам часть. В результате, портирование в Linux будет означать удаление того, что вы не используете, из эталонного дизайна, вместо добавления новых вещей и надеясь, что это сработает. Если вы идете с плоскими деталями, вы можете выполнять работу в своем гараже, если вы идете с bgas, вам нужно оборудование для этого или платите кому-то за это. (можете ли вы сказать, что я ненавижу bgas?).

Является ли Linux требованием, если нет, то это открывает двери для гораздо большего количества устройств, использующих freertos или chibios, или ряд других решений. Например, плата обнаружения stm32f4 стоит $20 и использует то, что едва ли можно назвать микроконтроллером для всех функций, которые она имеет (cortex-m4). Предположительно возможно запустить uclinux на cortex-m, но определенно возможно запустить любое количество rtoses и иметь стек ip и т. Д. Stellaris (ti.com) имеет несколько плат eval, одна / некоторые с уже существующим Ethernet (используйте как эталонный дизайн). Вы также можете воспользоваться подходом wiznet (или spi ethernet) и использовать любой микроконтроллер (переводит вас в уровень avr/msp430 и диапазон цен). Ударная сила - это хорошо, Cortex-M хорошо работают на руке, и т.д.

Используя linux, если вы уже не имеете опыта портирования на встроенную платформу и не хотите узнавать, что на этом пути, я определенно выбрал бы клон существующего дизайна, используя как можно больше от проекта с людьми. которые имеют опыт переноса Linux на платформу. Если необходимо, возьмите существующую плату (beagle/raspi/openrd) и выполните действия по портированию на платформу с помощью шпаргалки о доступе к существующему порту, проверьте, не можете ли вы получить порт uboot, загрузку linux и т. Д. (Вообще-то, вам вообще не нужен Uboot, что, возможно, является ненужным осложнением, просто возьмите драм и передайте atags и т. д. в Linux и просто переходите к нему, довольно легко запустить Linux из чистого металла).

Вы, вероятно, могли бы сделать хуже, чем взять Broadcom BCM2835 - используемый на Raspberry Pi - в качестве отправной точки - особенно если вы хотите избежать работы с ядром и загрузчиком и источником эталонных схем. Если это окажется слишком дорогим, проверьте другие устройства в диапазоне Broadcom.

Несколько советов

  • Вы, вероятно, хотите использовать флэш-память, а не интерфейс карты MMC для производственного использования. eMMC - это вариант. Вспышка NAND - это кошмар из-за быстрого морального износа компонентов и необходимости разобраться с драйверами MTD.
  • USB Ethernet будет легче интегрировать, чем контроллер, висящий на шине общего назначения, но не будет работать так же хорошо. SmSC, кажется, популярный источник

Вы также можете взглянуть на работу, которую Olimex делает со своими Linux-платами. Возможно, даже заказать сом, а затем объединить его с другими внешними компонентами.

Другие вопросы по тегам