Proszę sprawdzić tę stronę pod kątem niektórych platform Cortex-M3, które obsługują Linux (uClinux):
http://www.emcraft.com/
Z powodzeniem uruchamiamy uClinux na następujących MCU Cortex-M3: LPC1788 NXP, STM32F2 STmicro, SmartFusion Actela i jesteśmy w trakcie dodawania obsługi jeszcze kilku: Freescale Kinetis, STM32F4 (te dwa to Cortex-M4 zamiast Cortex-M3) .
To prawda, że Linux (wraz z uClinux) wymaga do działania zewnętrznej pamięci RAM - zintegrowana pamięć SRAM Cortex-M nie jest wystarczająco duża, nawet w przypadku bardzo małej konfiguracji Linuksa; potrzebujesz praktycznych konfiguracji co najmniej 4 MB zewnętrznej pamięci RAM. Im więcej, tym lepiej - jeśli twoja aplikacja potrzebuje „funkcji”, Linux obsługuje prawie wszystko i nie będziesz żałować, że dodałeś więcej pamięci RAM niż mniej.
W odniesieniu do konkretnych urządzeń, które mają być używane do zewnętrznej pamięci RAM, wszystko to jest zdefiniowane przez interfejs pamięci zewnętrznej zapewniany przez konkretny MCU. STM32F i SmartFusion obsługują tylko SRAM; można uzyskać PSRAM 16 MB 70ns (z trybem strony dla szybszej pracy) za 6-7 USD; LPC1788 obsługuje szybsze pamięci SDRAM; Kinetis K70 obsługuje DDR2 (5 USD za urządzenie o pojemności 64 MB) itp. Wszystkie te pamięci pobierają moc na poziomie zaledwie uA w czasie statycznym.
Potrzebujesz czegoś do załadowania bootowalnego Linuksa, ale może to dotyczyć wszystkiego - sieci, karty SD, SPI EEPROM, NOR lub NAND Flash itp.
Podsumowując, twierdzę, że Linux jest całkowicie praktyczną opcją dla projektu Cortex-M3.
Aktualizacja
Istnieje wiele wrażliwych na zużycie aplikacji, w których urządzenie jest bezczynne przez większość czasu, jednak podczas działania musi być w stanie wykonać wiele rzeczy, które nie będą łatwe do osiągnięcia przy użyciu mniejszego RTOS. Bezpieczne połączenia, VLAN, tunelowanie TCP / IP, SNMP, karta SD, urządzenie / host USB, WiFI itp., A lista wymagań jest długa.
Przy mniejszym RTOS niektóre z tych funkcji będą dostępne, inne nie, ale to tylko część historii. Coraz częściej widzimy u naszych klientów, że projekty osadzone wykorzystujące Cortex-M3 nie potrzebują tylko 1 lub 2 z tych zaawansowanych funkcji, potrzebują wielu z nich z jednego urządzenia. Nawet jeśli RTOS zapewnia wszystkie funkcje, których projekt potrzebuje od razu, wciśnięcie go do pamięci na chipie będzie wyzwaniem. uClinux czy nie, domyślam się, że trend będzie taki, że coraz więcej projektów opartych na Cortex-M będzie używać pamięci zewnętrznej. Oczywiście, kiedy w twoim projekcie pojawi się zewnętrzna pamięć RAM, uClinux zaczyna mieć więcej sensu.
Jeśli chodzi o niską moc obliczeniową zapewnianą przez Cortex-M (mierzoną w stosunku do wymagań jądra Linuksa), jako ostatnie doświadczenie właśnie włączyliśmy uClinux na Freescale K70 MCU. To jest Cortex-M4 (który jest taki sam jak Cortex-M3 plus sprzętowe jednostki FP i DSP); interfejsy na chipie do pamięci RAM o dużej gęstości (DDR2) i Flash (NAND), z buforami 2x8 KB. Rdzeń Cortex-M 120 MHz, a wkrótce pojawi się części 150 MHz.
Linux (uClinux) działa po prostu pięknie na tym urządzeniu. Korzystając z „dhrystone”, uzyskujemy około 50% wydajności, którą uzyskujemy na pudełku Freescale PowerPC 250 MHz. Szybkie uruchamianie, dużo pamięci RAM (moduł TWR-K70 zapewnia 128 MB pamięci RAM i 256 MB pamięci NAND Flash), praca w sieci, JFFS2, bufor ramki, SSH, HTTPD, Qt / E - wszystko działa dobrze na K70. Ogólne wrażenia użytkownika to Twój zwykły „wbudowany Linux” na mikroprocesorze pełnym MMU.
Oto wskaźnik do filmu z sesji na żywo uClinux na Freescale Kinetis K70 Cortex-M4 MCU:
http://www.youtube.com/watch?v=UZjJrLG9CeA