Veuillez consulter ce site pour certaines plates-formes Cortex-M3 qui prennent en charge Linux (uClinux):
http://www.emcraft.com/
Nous exécutons avec succès uClinux sur les microcontrôleurs Cortex-M3 suivants: LPC1788 de NXP, STM32F2 de STmicro, SmartFusion d'Actel, et nous sommes en train d'ajouter la prise en charge de quelques autres: Freescale Kinetis, STM32F4 (ces deux sont Cortex-M4 plutôt que Cortex-M3) .
Certes, Linux (uClinux inclus) nécessite une RAM externe pour fonctionner - la SRAM intégrée de Cortex-M n'est pas assez grande, même pour une configuration Linux ultra-petite; vous avez besoin d'au moins 4 Mo de RAM externe pour des configurations pratiques. Plus c'est mieux, en fait - si votre application a besoin de "fonctionnalités", Linux prend en charge n'importe quoi et vous ne serez pas déçu d'avoir ajouté plus de RAM plutôt que moins.
En ce qui concerne les périphériques particuliers à utiliser pour la RAM externe, tout est défini par l'interface de mémoire externe fournie par un MCU particulier. STM32F et SmartFusion ne prennent en charge que SRAM; vous seriez en mesure d'obtenir une PSRAM de 16 Mo 70ns (avec un mode Page pour un fonctionnement plus rapide) pour 6-7 $; Le LPC1788 prend en charge des mémoires SDRAM plus rapides; Kinetis K70 prend en charge la DDR2 (5 $ pour un périphérique de 64 Mo), etc.
Vous avez besoin de quelque chose pour charger un Linux amorçable, mais cela peut concerner n'importe quoi - réseau, carte SD, EEPROM SPI, Flash NOR ou NAND, etc.
Dans l'ensemble, j'ose dire que Linux est une option totalement pratique pour une conception Cortex-M3.
Mise à jour
Il existe de nombreuses applications sensibles à l'énergie où votre appareil est inactif la plupart du temps, cependant, lors de son fonctionnement, il doit être capable de faire beaucoup de choses qui ne seront pas faciles à réaliser en utilisant un RTOS plus petit. Connexions sécurisées, VLAN, tunneling TCP / IP, SNMP, carte SD, périphérique / hôte USB, WiFI, etc. et la liste des exigences s'allonge encore et encore.
Avec un RTOS plus petit, certaines de ces fonctionnalités seront disponibles, d'autres non, mais ce n'est qu'une partie de l'histoire. Ce que nous constatons de plus en plus chez nos clients, c'est que les conceptions intégrées utilisant Cortex-M3 n'ont pas seulement besoin de 1 ou 2 de ces fonctionnalités avancées, elles en ont besoin de nombreuses à partir d'un seul appareil. Même si un RTOS fournit toutes les fonctionnalités dont une conception a besoin sur étagère, le stockage de tout cela dans la mémoire sur la puce sera un défi. uClinux ou non, je suppose que la tendance va être de plus en plus de conceptions basées sur Cortex-M utiliser la mémoire externe. Bien sûr, une fois que vous avez de la RAM externe dans votre conception, uClinux commence à avoir plus de sens.
En ce qui concerne la faible puissance de traitement fournie par Cortex-M (mesurée par rapport aux exigences du noyau Linux), comme expérience récente, nous venons d'activer uClinux sur le MCU Freescale K70. Il s'agit d'un Cortex-M4 (qui est le même que les unités matérielles FP et DSP Cortex-M3 plus); interfaces sur puce avec RAM haute densité (DDR2) et Flash (NAND), avec caches sur puce 2x8 Ko. Noyau Cortex-M 120Mhz, avec des pièces 150Mhz bientôt disponibles.
Linux (uClinux) fonctionne à merveille sur cet appareil. En utilisant «dhrystone», nous obtenons environ 50% de performances que nous obtenons sur un boîtier PowerPC Freescale de 250 MHz. Démarrage rapide, beaucoup de RAM (le module TWR-K70 fournit 128 Mo de RAM et 256 Mo de NAND Flash), mise en réseau, JFFS2, framebuffer, SSH, HTTPD, Qt / E - tout cela fonctionne très bien sur K70. L'expérience utilisateur globale est votre "Linux embarqué" habituel sur un microprocesseur MMU complet.
Voici un pointeur vers la vidéo d'une session uClinux en direct exécutée sur le MCU Freescale Kinetis K70 Cortex-M4:
http://www.youtube.com/watch?v=UZjJrLG9CeA