Consulte este sitio para conocer algunas plataformas Cortex-M3 que son compatibles con Linux (uClinux):
enlace
Ejecutamos uClinux con éxito en las siguientes MCU de Cortex-M3: LPC1788 de NXP, STM32F2 de STmicro, SmartFusion de Actel, y estamos en proceso de agregar soporte para un par más: Freescale Kinetis, STM32F4 (estos dos son Cortex-M4 en lugar de Cortex -M3).
Es cierto que Linux (incluido uClinux) requiere RAM externa para ejecutarse: la SRAM integrada de Cortex-M no es lo suficientemente grande como para una configuración Linux extremadamente pequeña; Necesita al menos 4 MB de RAM externa para configuraciones prácticas. De hecho, cuanto más mejor, si su aplicación necesita "características", Linux tiene soporte para cualquier cosa y no se arrepentirá de haber agregado más RAM en lugar de menos.
Con respecto a los dispositivos particulares que se utilizan para la RAM externa, todo está definido por la interfaz de memoria externa proporcionada por una MCU particular. STM32F y SmartFusion solo admiten SRAM; usted podría obtener un PSRAM de 16MB 70ns (con un Modo de Página para una operación más rápida) por $ 6-7; LPC1788 soporta memorias SDRAM más rápidas; Kinetis K70 es compatible con DDR2 ($ 5 para un dispositivo de 64 MB), etc. Todas esas memorias consumen energía solo en niveles de uA en momentos estáticos.
Necesitas algo para cargar un Linux de arranque, pero esto puede ser sobre cualquier cosa: red, SDcard, SPI EEPROM, NOR o NAND Flash, etc.
En general, me atrevería a decir que Linux es una opción totalmente práctica para un diseño Cortex-M3.
Actualizar
Hay muchas aplicaciones sensibles a la energía en las que su dispositivo está inactivo la mayor parte del tiempo; sin embargo, cuando se ejecuta, debe poder hacer muchas cosas que no serán fáciles de lograr utilizando un RTOS más pequeño. Conexiones seguras, VLAN, túneles TCP / IP, SNMP, Tarjeta SD, dispositivo / host USB, WiFi, etc. y la lista de requisitos sigue y sigue.
Con un RTOS más pequeño, algunas de esas funciones estarán disponibles, otras no, sin embargo, es solo una parte de la historia. Lo que estamos viendo cada vez más con nuestros clientes es que los diseños integrados que utilizan Cortex-M3 no solo necesitan 1 o 2 de esas características avanzadas, sino que también necesitan muchas de ellas desde un solo dispositivo. Incluso si un RTOS proporciona todas las características que un diseño necesita de forma estándar, incluirlo todo en la memoria del chip será un desafío. Ya sea o no, creo que la tendencia será que cada vez más diseños basados en Cortex-M usarán memoria externa. Por supuesto, una vez que obtiene RAM externa en su diseño, uClinux comienza a tener más sentido.
En cuanto a la baja potencia de procesamiento proporcionada por Cortex-M (medida según los requisitos del kernel de Linux), como experiencia reciente, acabamos de habilitar uClinux en la MCU Freescale K70. Este es un Cortex-M4 (que es lo mismo que Cortex-M3 más las unidades de hardware FP y DSP); interfaces en chip para RAM de alta densidad (DDR2) y Flash (NAND), con cachés en chip de 2x8KB. Núcleo de 120Mhz Cortex-M, con partes de 150Mhz próximamente.
Linux (uClinux) se ejecuta maravillosamente en este dispositivo. Al usar 'dhrystone', obtenemos aproximadamente el 50% de rendimiento que obtenemos en una caja PowerPC de 250Mhz Freescale. Arranque rápido, gran cantidad de RAM (el módulo TWR-K70 proporciona 128 MB de RAM y 256 MB de NAND Flash), redes, JFFS2, framebuffer, SSH, HTTPD, Qt / E: todo esto funciona bien en K70. La experiencia general del usuario es su "Linux incorporado" habitual en un microprocesador MMU completo.
Aquí hay un puntero al video de una sesión de uClinux en vivo que se ejecuta en el MCU Freescale Kinetis K70 Cortex-M4:
enlace