Перевірте цей сайт на деяких платформах Cortex-M3, які підтримують Linux (uClinux):
http://www.emcraft.com/
Ми успішно запускаємо uClinux на наступних MCU Cortex-M3: NXP LPC1788, STmicro STM32F2, Actel's SmartFusion, і зараз додаємо підтримку ще для пари: Freescale Kinetis, STM32F4 (ці два Cortex-M4, а не Cortex-M3) .
Правда, Linux (включений uClinux) вимагає запуску зовнішньої оперативної пам’яті - інтегрована SRAM Cortex-M недостатньо велика, навіть для надто крихітної конфігурації Linux; для практичних налаштувань вам потрібно щонайменше 4 Мб зовнішньої оперативної пам’яті. Тим більше, тим краще - якщо вашому додатку потрібні "функції", у Linux є підтримка нічого, і ви не пошкодуєте, що додали більше оперативної пам'яті, а не менше.
Що стосується конкретних пристроїв, які використовуються для зовнішньої оперативної пам’яті, все це визначається інтерфейсом зовнішньої пам’яті, що надається певним MCU. STM32F та SmartFusion підтримують лише SRAM; ви зможете отримати PSRAM розміром 70 Мб (70 МБ) (з режимом сторінки для більш швидкої роботи) за $ 6-7; LPC1788 підтримує швидші пам'яті SDRAM; Kinetis K70 підтримує DDR2 (5 доларів за пристрій 64 МБ) і т. Д. Усі ці спогади черпають живлення лише на рівні uA в статичний час.
Вам потрібно щось завантажувати з завантажувального Linux, але це може бути про що завгодно - мережу, SDcard, SPI EEPROM, NOR або NAND Flash тощо.
Загалом, я смію сказати, що Linux - це абсолютно практичний варіант для дизайну Cortex-M3.
Оновлення
Існує велика кількість енергочутливих програм, де ваш пристрій працює в режимі очікування, проте під час роботи йому потрібно робити багато речей, чого не буде легко досягти, використовуючи менший RTOS. Безпечні підключення, VLAN, тунелювання TCP / IP, SNMP, SD-карта, USB-пристрій / хост, WiFI тощо, і перелік вимог продовжується і продовжується.
З меншим RTOS деякі з цих функцій будуть доступні, а деякі ні, проте це лише частина історії. Що більше ми спостерігаємо з нашими замовниками, це те, що для вбудованих конструкцій, що використовують Cortex-M3, потрібно не лише 1, ані 2 цих розширених функцій, багато з них потрібно з одного пристрою. Навіть якщо RTOS надає всі функції, які потребують дизайну в повному обсязі, це завдасть все це пам'яті на мікросхемі. uClinux чи ні, я гадаю, що тенденція полягатиме в тому, що все більше дизайнів на основі Cortex-M будуть використовувати зовнішню пам'ять. Звичайно, щойно ви отримаєте зовнішню оперативну пам’ять у своєму дизайні, uClinux починає мати більше сенсу.
Що стосується низької потужності процесора, що надається Cortex-M (вимірюється відповідно до вимог ядра Linux), то як недавній досвід ми лише включили uClinux в MCU Freescale K70. Це Cortex-M4 (це те саме, що Cortex-M3 плюс апаратні модулі FP і DSP); інтерфейси мікросхеми до оперативної пам’яті високої щільності (DDR2) та Flash (NAND), з кеш-пам’ятьми 2x8KB. Ядро Cortex-M 120 МГц, незабаром вийде деталь на 150 МГц.
На цьому пристрої Linux (uClinux) працює просто чудово. Використовуючи "dhrystone", ми отримуємо близько 50% продуктивності, яку отримуємо на коробці PowerPC Freescale з частотою 250 МГц. Швидке завантаження, багато оперативної пам’яті (модуль TWR-K70 забезпечує 128 Мб оперативної пам’яті та 256 МБ NAND Flash), мережа, JFFS2, фреймбуфер, SSH, HTTPD, Qt / E - все це працює чудово на K70. Загальний досвід користувачів - це ваш звичайний "вбудований Linux" на мікропроцесорі, повному MMU.
Ось вказівник на відео сеансу uClinux в реальному часі, який працює на MCU Freescale Kinetis K70 Cortex-M4:
http://www.youtube.com/watch?v=UZjJrLG9CeA