Пожалуйста, проверьте этот сайт на наличие некоторых платформ 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