Auf dieser Website finden Sie Informationen zu einigen Cortex-M3-Plattformen, die Linux (uClinux) unterstützen:
http://www.emcraft.com/
Wir haben uClinux erfolgreich auf den folgenden Cortex-M3-MCUs ausgeführt: NXPs LPC1788, STM32F2 von STmicro, SmartFusion von Actel und sind dabei, einige weitere zu unterstützen: Freescale Kinetis, STM32F4 (diese beiden sind Cortex-M4 anstelle von Cortex-M3) .
Richtig, Linux (einschließlich uClinux) benötigt externen RAM, um ausgeführt zu werden - der integrierte SRAM von Cortex-M ist selbst für eine winzige Linux-Konfiguration bei weitem nicht groß genug. Sie benötigen mindestens 4 MB externen RAM für praktische Konfigurationen. Je mehr desto besser - wenn Ihre Anwendung "Funktionen" benötigt, wird Linux für fast alles unterstützt, und es wird Ihnen nicht leid tun, dass Sie mehr RAM hinzugefügt haben, anstatt weniger.
In Bezug auf bestimmte Geräte, die für den externen RAM verwendet werden sollen, wird alles durch die externe Speicherschnittstelle definiert, die von einer bestimmten MCU bereitgestellt wird. STM32F und SmartFusion unterstützen nur SRAM. Sie könnten einen PSRAM mit 16 MB und 70 ns (mit einem Seitenmodus für schnelleren Betrieb) für 6 bis 7 US-Dollar erhalten. LPC1788 unterstützt schnellere SDRAM-Speicher; Kinetis K70 unterstützt DDR2 (5 US-Dollar für ein 64-MB-Gerät) usw. Alle diese Speicher verbrauchen zu statischen Zeiten nur Strom auf uA-Niveau.
Sie brauchen etwas, um ein bootfähiges Linux zu laden, aber das kann alles sein - Netzwerk, SD-Karte, SPI-EEPROM, NOR oder NAND-Flash usw.
Insgesamt bin ich der Meinung, dass Linux eine absolut praktische Option für ein Cortex-M3-Design ist.
Aktualisieren
Es gibt viele stromempfindliche Anwendungen, bei denen Ihr Gerät die meiste Zeit im Leerlauf ist. Wenn es jedoch ausgeführt wird, muss es in der Lage sein, viele Dinge zu tun, die mit einem kleineren RTOS nicht einfach zu erreichen sind. Sichere Verbindungen, VLAN, TCP / IP-Tunnel, SNMP, SD-Karte, USB-Gerät / Host, WiFI usw. und die Liste der Anforderungen geht weiter und weiter.
Mit einem kleineren RTOS werden einige dieser Funktionen verfügbar sein, andere nicht. Dies ist jedoch nur ein Teil der Geschichte. Was wir bei unseren Kunden immer mehr sehen, ist, dass eingebettete Designs mit Cortex-M3 nicht nur 1 oder 2 dieser erweiterten Funktionen benötigen, sondern viele von ihnen von einem einzigen Gerät. Selbst wenn ein RTOS alle Funktionen bietet, die ein Design von der Stange benötigt, wird es eine Herausforderung sein, alles in den On-the-Chip-Speicher zu packen. uClinux oder nicht, ich gehe davon aus, dass der Trend dahin gehen wird, dass immer mehr Cortex-M-basierte Designs externen Speicher verwenden. Sobald Sie externen Arbeitsspeicher in Ihrem Design haben, macht uClinux natürlich mehr Sinn.
Angesichts der geringen Rechenleistung von Cortex-M (gemessen an den Anforderungen des Linux-Kernels) haben wir kürzlich uClinux auf der Freescale K70-MCU aktiviert. Dies ist ein Cortex-M4 (der mit Cortex-M3 plus Hardware-FP- und -DSP-Einheiten identisch ist). On-Chip-Schnittstellen zu High-Density-RAM (DDR2) und Flash (NAND) mit 2 On-Chip-Caches von 8 KB. 120-MHz-Cortex-M-Kern, in Kürze werden 150-MHz-Teile herauskommen.
Linux (uClinux) läuft auf diesem Gerät einfach wunderbar. Unter Verwendung von 'Dhrystone' erhalten wir ungefähr 50% Leistung, die wir auf einer 250 MHz Freescale PowerPC-Box erhalten. Schnelles Hochfahren, viel RAM (das TWR-K70-Modul bietet 128 MB RAM und 256 MB NAND-Flash), Netzwerkbetrieb, JFFS2, Framebuffer, SSH, HTTPD, Qt / E - all dies funktioniert auf K70 einwandfrei. Die allgemeine Benutzererfahrung ist Ihr reguläres "eingebettetes Linux" auf einem MMU-vollständigen Mikroprozessor.
Hier ist ein Verweis auf das Video einer Live-uClinux-Sitzung, die auf der Freescale Kinetis K70 Cortex-M4-MCU ausgeführt wird:
http://www.youtube.com/watch?v=UZjJrLG9CeA