Đã có thảo luận liên quan đến câu hỏi này ở đây: link
Trích đoạn: Bài viết trên Tạp chí Linux được đề cập ở đây: link
Tôi nghĩ rằng các cổng 8052 và M68HC12 là những lựa chọn đặc biệt tồi để mô tả NuttX vì cả hai đều có một số vấn đề và NuttX hiện đang ở phiên bản 5.16 với 63 bản phát hành.
Tôi đã điền vào cuộc phỏng vấn trong tab "Nhà xuất bản" ở đây: link ; có một nhận xét ở đó quá: liên kết .
Tài liệu mở rộng NuttX có sẵn ở đây: link .
Các vấn đề với các phần hcs12 và 8051 như sau:
8051 / 80c52: Kiến trúc này thực sự là thù địch RTOS. Nó có một ngăn xếp phần cứng nhỏ (128 byte trên 8051, 256 trên 80c52) tại một vị trí bộ nhớ chuyên dụng (địa chỉ 0). Để chuyển đổi tác vụ, bạn phải sao chép toàn bộ ngăn xếp của nhiệm vụ bị chặn từ địa chỉ chuyên dụng của nó sang một số vị trí lưu và sau đó sao chép toàn bộ ngăn xếp của nhiệm vụ được bắt đầu từ vị trí lưu của nó sang vị trí ngăn xếp chuyên dụng. YECH!
Và kể từ đó, ngăn xếp rất nhỏ. Nó rất, rất dễ dàng để vượt qua ngăn xếp - đặc biệt là trong quá trình xử lý ngắt.
Cổng NuttX 8051 hoàn chỉnh và hoạt động (ít nhất là lần cuối cùng tôi sử dụng nó). Nhưng để làm cho nó hữu ích, có lẽ bạn sẽ phải sao chép toàn bộ ngăn xếp trên mỗi ngắt cũng để giữ cho nó không bị tràn. Về cơ bản, tôi đã mất hứng thú vào thời điểm đó nhưng nếu ai đó thực sự có động lực sử dụng 8051, điều đó là có thể làm được (nếu có lẽ không được khuyên dùng tốt).
Điều tuyệt vời ở cổng 8051 là nó là một bài tập tuyệt vời trong việc đưa NuttX vào một vị trí bộ nhớ rất nhỏ. Cổng 8051 chạy trong 32Kb RAM - bao gồm RTOS, libc, thư viện trình biên dịch, chương trình thử nghiệm đáng kể, .data / .bss và heap. Và với một chút ký ức!
hcs12: Đây là một dự án mà tôi làm việc trong thời gian rảnh rỗi khi tôi không làm gì khác. Nó chỉ chưa hoàn thành và chưa sẵn sàng cho thời gian chính.
Liên quan đến việc so sánh với các RTOS khác, tôi thực sự không có câu trả lời hay, có thẩm quyền nào vì tôi không sử dụng các RTOS khác. Nhưng đây là sự hiểu biết ngây thơ của tôi:
FreeRTOS có hàng tấn lượt tải xuống và dung lượng rất nhỏ khoảng 4Kb. Đây là RTOS được lựa chọn cho các MCU thực sự nhỏ. Một cổng FreeRTOS được cung cấp bởi các nhà cung cấp silicon với mỗi MCU. Vì vậy, nó là sự lựa chọn mặc định RTOS.
Có hàng tá đối thủ cạnh tranh với FreeRTOS ngoài kia. ChiBIOS đến với tâm trí ngay lập tức. Đây là tất cả các lịch trình nhỏ của các loại khác nhau.
Để thực hiện một so sánh thực tế, một điều chúng ta cần làm trước tiên là xác định những gì chúng ta muốn nói về một RTOS: Nó chỉ là một trình lập lịch biểu? Hoặc nó là một tập hợp các tính năng hệ điều hành tiêu chuẩn - như bộ lập lịch, hệ thống tập tin, trình điều khiển thiết bị, quản lý bộ nhớ, mạng, v.v. Hầu hết hệ điều hành, Linux chẳng hạn, là môi trường phát triển đầy đủ, không chỉ là bộ lập lịch. NuttX là một hệ điều hành đầy đủ có cùng ý nghĩa với Linux. Dưới đây là một vài người khác:
RTEMS : Tôi đã làm việc với cái này. Nó đã tồn tại mãi mãi và sẽ rất ổn định. Nó to; nghĩ> 100kb. Tôi nghĩ rằng nó nhắm một chút trên thị trường MCU.
uCOS : Không bao giờ sử dụng nó, nhưng đây là RTOS trong một số bộ tải khởi động phổ biến, phải không? Ấn tượng của tôi là nó tương tự như RTEMS, nhưng tôi không thực sự biết tôi đang nói về cái gì.
Làm thế nào tôi có thể so sánh NuttX với những người đó: Chà, nó nhỏ hơn rất nhiều. Dấu chân bắt đầu là khoảng 20Kb. Một sự thú nhận đầy đủ tính năng là khoảng 10-20Kb nữa. Một điểm khác biệt so với các RTOS này là NuttX có định hướng rất chuẩn. Bạn có thể nghĩ về NuttX như một công việc nhỏ, giống như Linux. Hầu hết các mã biên dịch và chạy trên Linux cũng sẽ chạy trên NuttX (một số mã hệ thống như mã mạng hoặc trình nền có thể cần một số điều chỉnh).
Tôi nghĩ RTEMS tập trung nhiều hơn vào bộ vi xử lý; NuttX tập trung nhiều hơn vào các bộ điều khiển vi mô.