Vui lòng kiểm tra trang web này để biết một số nền tảng Cortex-M3 hỗ trợ Linux (uClinux):
http://www.emcraft.com/
Chúng tôi đã chạy thành công uClinux trên các MCU Cortex-M3 sau: LPC1788 của NXP, STM32F2 của STmicro, SmartFusion của Actel và đang trong quá trình thêm hỗ trợ cho một vài thứ nữa: Freescale Kinetis, STM32F4 (hai loại này là Cortex .
Đúng, Linux (bao gồm uClinux) yêu cầu RAM ngoài để chạy - SRAM tích hợp của Cortex-M không đủ lớn ngay cả đối với cấu hình Linux siêu nhỏ; bạn cần ít nhất 4 MB RAM ngoài cho các cấu hình thực tế. Thực tế càng tốt hơn - nếu ứng dụng của bạn cần "tính năng", Linux có hỗ trợ về mọi thứ và bạn sẽ không hối tiếc vì bạn đã thêm nhiều RAM hơn là ít hơn.
Đối với các thiết bị cụ thể được sử dụng cho RAM ngoài, tất cả được xác định bởi giao diện bộ nhớ ngoài được cung cấp bởi một MCU cụ thể. STM32F và SmartFusion chỉ hỗ trợ SRAM; bạn sẽ có thể nhận được PSRAM 16 MB 70ns (với Chế độ trang để hoạt động nhanh hơn) với giá 6-7 đô la; LPC1788 hỗ trợ bộ nhớ SDRAM nhanh hơn; Kinetis K70 hỗ trợ DDR2 (5 đô la cho thiết bị 64 MB), v.v ... Tất cả những ký ức đó đều tiêu thụ năng lượng ở mức uA ở thời điểm tĩnh.
Bạn cần một cái gì đó để tải Linux có khả năng khởi động, nhưng đây có thể là bất cứ thứ gì - mạng, SDcard, SPI EEPROM, NOR hoặc NAND Flash, v.v.
Nhìn chung, tôi dám khẳng định rằng Linux là một lựa chọn hoàn toàn thiết thực cho thiết kế Cortex-M3.
Cập nhật
Có rất nhiều ứng dụng nhạy cảm với năng lượng trong đó hầu hết thời gian, thiết bị của bạn không hoạt động, tuy nhiên, khi chạy, nó cần có khả năng thực hiện nhiều điều mà sẽ không dễ dàng đạt được khi sử dụng RTOS nhỏ hơn. Kết nối an toàn, đường hầm Vlan, TCP / IP, SNMP, Thẻ SD, thiết bị / máy chủ USB, WiFI, v.v. và danh sách các yêu cầu được bật và tắt.
Với một RTOS nhỏ hơn, một số tính năng sẽ có sẵn, một số thì không, tuy nhiên nó chỉ là một phần của câu chuyện. Những gì chúng ta đang thấy với khách hàng ngày càng nhiều là các thiết kế nhúng sử dụng Cortex-M3 không chỉ cần 1 hoặc 2 trong số các tính năng nâng cao đó, họ cần nhiều trong số chúng từ một thiết bị. Ngay cả khi một RTOS cung cấp tất cả các tính năng mà một thiết kế cần có sẵn, việc nhồi nhét tất cả vào bộ nhớ trên chip sẽ là một thách thức. uClinux hay không, tôi đoán rằng xu hướng sẽ là ngày càng nhiều thiết kế dựa trên Cortex-M sẽ sử dụng bộ nhớ ngoài. Tất nhiên, một khi bạn nhận được RAM ngoài trong thiết kế của mình, uClinux bắt đầu có ý nghĩa hơn.
Về khả năng xử lý thấp do Cortex-M cung cấp (được đo theo yêu cầu của nhân Linux), như một kinh nghiệm gần đây, chúng tôi vừa kích hoạt uClinux trên Freescale K70 MCU. Đây là một Cortex-M4 (giống như Cortex-M3 cộng với các đơn vị FP và DSP phần cứng); giao diện trên chip với RAM mật độ cao (DDR2) và Flash (NAND), với bộ nhớ cache trên chip 2x8KB. Lõi Cortex-M 120Mhz, với các bộ phận 150Mhz sắp ra mắt.
Linux (uClinux) chỉ chạy tốt trên thiết bị này. Sử dụng 'dhstallone', chúng tôi nhận được khoảng 50% hiệu suất chúng tôi nhận được trên hộp PowerPC 250Mhz. Khởi động nhanh, nhiều RAM (mô-đun TWR-K70 cung cấp 128 MB RAM và 256 MB NAND Flash), mạng, JFFS2, bộ đệm khung, SSH, HTTPD, Qt / E - tất cả điều này chỉ chạy tốt trên K70. Trải nghiệm người dùng nói chung là "Linux nhúng" thường xuyên của bạn trên bộ vi xử lý đầy đủ MMU.
Đây là một con trỏ tới video của phiên uClinux trực tiếp đang chạy trên Freescale Kinetis K70 Cortex-M4 MCU:
http://www.youtube.com/watch?v=UZjJrLG9CeA