Я новичок в ARM и немного запутался со всеми различными сериями.
Мне нужно построить шлюз с низким энергопотреблением (Ethernet, Wi-Fi ...), поэтому я думаю, что Cortex-M или Cortex-R будет хорошей отправной точкой. Но он не нашел ни одной dev-платы, скажем, с cortex-m3 (которая кажется довольно популярной), поддерживающей linux.
Кажется возможным linuxM3 , поэтому мне интересно, почему нет проекта linux вокруг mbed или LPCXpresso, например?
Может кто-нибудь указать мне на панель разработки, которую я ищу, или объяснить, почему «cortex m» + linux не соответствует большему количеству ответов?
Ответы:
Что касается ARM Cortex-M3:
Linux требует MMU (блок управления памятью). У ARM Cortex-M3 его нет. Невозможно запустить основное ядро Linux на ARM Cortex-M3.
Однако существует вариант ядра Linux для процессоров без MMU, называемый uCLinux .
Руководство по Linux на M3
Замечания по применению ST на uCLinux
Однако, как отмечают другие, Linux вряд ли будет практичным на M3. Он не будет работать без внешней оперативной памяти. Я полагаю, что даже самые большие части Cortex-M3 имеют только 1 МБ флэш-памяти, поэтому вам, вероятно, понадобится и дополнительное хранилище.
источник
Cortex-M не подходит для работы, вам нужен ARM926EJ-S
Поиск "Cortex-M + Linux" не дает много ответов, потому что Cortex-M не предназначен для Linux. Наименее мощным ARM, который обычно считается способным работать с полноценной ОС, такой как Linux, является серия ARM926EJ-S , в которой используется архитектура ARMv5. Это классический процессор с широким распространением (он встречается во многих устройствах NAS, старых смартфонах и Chumby Classic) и большой поддержкой, но он немного менее эффективен, чем его преемники. Он имеет архитектуру ARMv5 и работает на паре сотен МГц.
Это то, что вы действительно хотите, но вы не можете иметь это
Я думаю, что процессор, который вам действительно нужен, это Cortex-A5: он разработан, чтобы заменить (и быть чуть более мощным, чем) ARM11, но гораздо более энергоэффективен и более современен. (Примечание. Ничего общего с Apple A5, это специальный Cortex-A9) Он был анонсирован в 2009 году, и мы ожидаем увидеть кремний «в любой день». Никто еще не выпустил универсальную SoC для этого процессора, потому что смартфоны управляют рынком, и рынок между более мощным A9 и старым ARM11 просто не является убедительным. См. Это обсуждение для получения дополнительной информации: http://forum.beyond3d.com/archive/index.php/t-60145.html
Более мощные опции
ARMv6 в ARM11 немного более эффективен, но также и более мощный (так что вы можете не увидеть никакой экономии в вашем бюджете на энергопотребление). Он работает на менее старых смартфонах, таких как iPhone 3G, а также на iPod Touch, Kindle и Zune и работает на частоте 500–800 МГц. Последняя архитектура ARMv7 - это серия Cortex. Cortex-A8 и -A9 работают на новейших смартфонах и планшетах с частотой 800 МГц - 1,2 ГГц, и вам, вероятно, захочется использовать меньшие, более медленные процессоры, если вы стремитесь к минималистичному дизайну. Производительность на ватт этих процессоров просто фантастическая, но может быть безопаснее (и, конечно, будет менее сложно) просто использовать компоненты ARMv5.
источник
Пожалуйста, проверьте этот сайт на наличие некоторых платформ Cortex-M3, которые поддерживают Linux (uClinux):
http://www.emcraft.com/
Мы успешно запустили uClinux на следующих микроконтроллерах Cortex-M3: LPC1788 от NXP, STM32F2 от STmicro, SmartFusion от Actel и добавляем поддержку еще пары: Freescale Kinetis, STM32F4 (это два Cortex-M4, а не Cortex-M3) ,
Правда, для работы Linux (включая uClinux) требуется внешнее ОЗУ - встроенная SRAM Cortex-M недостаточно велика даже для ультра-крошечной конфигурации Linux; для практической конфигурации вам нужно как минимум 4 МБ внешней памяти. На самом деле, чем больше, тем лучше - если вашему приложению нужны «функции», Linux поддерживает практически все, и вы не пожалеете, что добавили больше оперативной памяти, а не меньше.
Что касается конкретных устройств, используемых для внешней оперативной памяти, то все это определяется интерфейсом внешней памяти, предоставляемым конкретным MCU. STM32F и SmartFusion поддерживают только SRAM; Вы сможете получить 16 МБ 70 нс PSRAM (с режимом Page для более быстрой работы) за 6-7 долларов США; LPC1788 поддерживает более быструю память SDRAM; Kinetis K70 поддерживает DDR2 (5 долларов за устройство объемом 64 МБ) и т. Д. Все эти запоминающие устройства потребляют энергию только на уровне uA в статические моменты времени.
Вам нужно что-то для загрузки загрузочного Linux с, но это может быть что угодно - сеть, SD-карта, SPI EEPROM, NOR или NAND Flash и т. Д.
В целом, осмелюсь сказать, что Linux - это абсолютно практичный вариант для разработки Cortex-M3.
Обновить
Существует множество чувствительных к энергопотреблению приложений, в которых ваше устройство простаивает большую часть времени, однако во время работы оно должно иметь возможность выполнять многие действия, которые не могут быть легко выполнены с помощью меньшей ОСРВ. Безопасные соединения, VLAN, туннелирование TCP / IP, SNMP, SD-карта, USB-устройство / хост, WiFI и т. Д., И список требований можно продолжать и продолжать.
С меньшей RTOS некоторые из этих функций будут доступны, некоторые нет, но это только часть истории. Что мы видим у наших клиентов все больше и больше, так это то, что для встраиваемых конструкций, использующих Cortex-M3, требуется не просто одна или две из этих расширенных функций, а многие из них с одного устройства. Даже если ОСРВ предоставляет все функции, необходимые для готового проекта, втиснуть их в оперативную память будет непросто. uClinux или нет, я предполагаю, что тенденция будет такова, что все больше и больше проектов на основе Cortex-M будут использовать внешнюю память. Конечно, как только вы получите внешнее ОЗУ в своем дизайне, uClinux станет более понятным.
Что касается низкой вычислительной мощности, предоставляемой Cortex-M (по сравнению с требованиями ядра Linux), в качестве недавнего опыта мы только что включили uClinux на микроконтроллере Freescale K70. Это Cortex-M4 (такой же, как Cortex-M3 плюс аппаратные блоки FP и DSP); встроенные в кристаллы интерфейсы с ОЗУ высокой плотности (DDR2) и Flash (NAND) с кэш-памятью 2x8 КБ. 120-МГц ядро Cortex-M с частотой 150 МГц, выходящей в ближайшее время.
Linux (uClinux) прекрасно работает на этом устройстве. Используя 'dhrystone', мы получаем около 50% производительности, которую мы получаем на коробке Freescale PowerPC 250 МГц. Быстрая загрузка, много оперативной памяти (модуль TWR-K70 обеспечивает 128 МБ ОЗУ и 256 МБ NAND Flash), работа в сети, JFFS2, кадровый буфер, SSH, HTTPD, Qt / E - все это прекрасно работает на K70. В целом, пользовательский опыт - это ваш обычный «встроенный Linux» на микропроцессоре, полном MMU.
Вот указатель на видео сеанса uClinux в реальном времени, запущенного на микроконтроллере Freescale Kinetis K70 Cortex-M4:
http://www.youtube.com/watch?v=UZjJrLG9CeA
источник
Без какой-либо поддержки внешней памяти (как ОЗУ, так и Flash) невозможно установить даже самый маленький дистрибутив Linux (скажем, uclinux) на встроенные ресурсы упомянутых устройств.
Обычно это означает, что 32-битная шина открыта для подключения дополнительных чипов. Вот почему чаще всего встречаются одноплатные компьютеры Linux (SBC) с дополнительной оперативной памятью и флэш-чипами в диапазоне мегабайт, которые используются для запуска Linux. Микроконтроллеры, которые вы перечислили, не предлагают этого. На мой взгляд, cortex-m0 / m3 больше предназначен для приложений, где 8-битный микро не будет (или едва) достаточен - таким образом, все необходимые вам ресурсы встроены в чип.
Чтобы лучше ответить на этот вопрос, было бы целесообразно проанализировать требования для встроенного Linux. Обычно это означает возможность установки загрузчика, ядра и файловой системы - и, конечно же, фактического пользовательского приложения и библиотек, необходимых для его запуска. Подведите итог, и вы скоро увидите, что вам может понадобиться пара мегабайт оперативной памяти и флэш-памяти, чтобы сделать что-нибудь полезное.
источник
На stm32 нет MMU, поэтому вы должны использовать ucLinux.
Быстрый Google для ucLinux отправит вас в правильном направлении. https://www.google.com/search?q=stm32+uclinux
Но, с другой стороны, Linux не очень полезен для такого небольшого mcu, и большую часть времени вам нужны внешний RAM и SD-карта для его запуска. И затем цена закрывается на таких проектах, как Rasperry PI, так что вам нужно подумать о своих потребностях.
Может быть, другая меньшая ОС - лучший выбор? Даже если тебе приятно иметь Linux везде ...
источник
Существуют некоторые приложения с низким энергопотреблением, такие как интеллектуальные измерения, где действительно полезно использовать Cortex-M3 с внешней памятью под управлением Linux. Думайте не с точки зрения общей стоимости (платы будут стоить почти столько же, сколько с более быстрым ядром), а с точки зрения потребления энергии.
Если вы работаете от батареи и большую часть времени находитесь в режиме ожидания, проводя измерения, возможно, каждую минуту или около того, а затем отправляя их по сети, было бы неплохо иметь возможность использовать инфраструктуру, предоставленную вам linux для TCP / IP, шифрование и т. Д.
На Всемирной выставке встраиваемых систем в этом году Pengutronix продемонстрировал Linux на макетной плате от EnergyMicro с uCLinux на Cortex-M3 с внешней оперативной памятью и потребляемой мощностью 1,6 мВт в режиме ожидания. Energy Micro имеет в своем портфеле невероятно маломощные микроконтроллеры Cortex-M3 и M4, специально оптимизированные для приложений с низким энергопотреблением, которым требуется приблизительно 16 МВт мощности при работе на 32 МГц при выполнении кода из ОЗУ. Это может включить Linux на различных устройствах с батарейным питанием, где более крупные и быстрые процессоры просто не соответствуют вашему энергетическому бюджету. С другой стороны, вы не получите от этого большой вычислительной мощности ...
Поэтому, если вы живете от батареи и вам не нужно много вычислительной мощности, это может быть решением для вас, в противном случае вы можете выбрать большее ядро ARM с MMU.
источник
Я полагаю, что есть пара поставщиков Cortex-M3, которые предлагают замечания по применению об использовании урезанных версий Linux ( uCLinux ), работающих на их продуктовых предложениях. К счастью, у ST Micro были некоторые предложения. В настоящее время я работаю с Actel / Microsemi SmartFusion (Cortex-M3 + FPGA Fabric), в котором есть примечание к приложению PDF, указывающее на предложение Emcraft .
источник