Tôi đang đánh giá các hệ điều hành để sử dụng trong Dự án Internet of Things và tôi không biết cách tốt nhất để tiến hành.
Tôi đang sử dụng MCU TM4C123GH6PM với RAM 32k và bộ thu phát CC2520 802.15.4, thật tuyệt nếu hệ thống đã cung cấp trình điều khiển cho những người đó.
Hệ thống sẽ chạy một tác vụ (tương tác) vẽ màn hình dotmatrix và phản ứng với đầu vào của người dùng. Nó sẽ lưu trữ dữ liệu cấu hình và ứng dụng trên spi flash. Sẽ có một mạng lưới gồm nhiều mô-đun (dựa trên 802.15.4) để đồng bộ dữ liệu giữa các mô-đun, trích xuất dữ liệu cảm biến từ các mô-đun và chuyển chúng đến một cổng (rpl đến với tâm trí) và cũng phân phối các bản cập nhật firmware OtA trong một tin đồn- thích thời trang. Tất cả trong khi chạy một ứng dụng khá đói bộ nhớ là tốt.
Cho đến nay tôi đã xem xét các hệ thống này:
RIÊNG :
ưu
- trừu tượng phần cứng tốt
- dấu chân nhỏ
- cộng đồng rất tích cực và hữu ích
- đầy đủ ngăn xếp 802.15.4 / 6LoWPAN
khuyết điểm
- không ổn định, vẫn đang trải qua những thay đổi cơ bản
- vẫn chứa điều kiện cuộc đua / tai nạn
- không hỗ trợ hệ thống tập tin
- vài giao thức mạng
Contiki :
ưu
- hệ thống trưởng thành, được sử dụng trong các sản phẩm thương mại
- đầy đủ ngăn xếp 802.15.4 / 6LoWPAN với nhiều giao thức hữu ích
- hỗ trợ hệ thống tập tin
- hỗ trợ cc2520
khuyết điểm
- sự phát triển đã trở nên cũ kỹ
- cơ sở mã hóa 'trưởng thành', nhiều thối bit
- cổng tiva c kém chất lượng
- ít hỗ trợ cho các nền tảng hiện đại
- lập lịch không ưu tiên có thể gây ra vấn đề với ứng dụng
FreeRTOS :
ưu
- ít phức tạp thêm
- dễ sử dụng, lập lịch đáng tin cậy
- dự án trưởng thành, được sử dụng trong nhiều sản phẩm
- rất nhiều cổng
khuyết điểm
- không có hệ thống tập tin
- không trừu tượng hóa phần cứng cho trình điều khiển / không trình điều khiển phần cứng
- không có ngăn xếp mạng
- sử dụng bộ nhớ động cao
NuttX :
ưu
- Rất giàu tính năng, hầu như cảm thấy giống như Linux, nhưng vẫn còn nhỏ
- hỗ trợ hệ thống tập tin
- trừu tượng phần cứng tốt
- Cổng Tiva C, nhiều cổng khác
khuyết điểm
- hơi phức tạp
- không hỗ trợ cho 802.15.4 / 6LoWPAN, chỉ là netstack 'cổ điển'
Kết luận của tôi sẽ là lấy những phần hay của Contiki (netstack, hệ thống tệp) và chuyển chúng sang FreeRTOS. Nhưng tôi không hoàn toàn thoải mái với một ngã ba như thế. Có lẽ tôi đã thêm lỗi và sẽ không thể đưa ra các bản sửa lỗi ngược dòng, ngoài ra tôi vẫn phải phát minh ra sự trừu tượng hóa phần cứng của riêng mình để có thể chuyển đổi MCU trong tương lai. Vì vậy, tôi đã kết thúc với hệ điều hành của riêng mình cho một thứ có vẻ như là một vấn đề mà nhiều người khác cũng nên có - trước đây ai đó đã làm điều đó chưa? (Ý tôi là tôi đã tìm thấy thứ gì đó, nhưng ý tưởng chạy toàn bộ contiki-os như một nhiệm vụ FreeRTOS khiến tôi không thoải mái)
Có thiếu điều gì không? Có lẽ nỗi đau sẽ đáng giá và tôi nên cố gắng đưa Contiki đến trạng thái chức năng trên phần cứng của mình? Hoặc có một hệ thống khác mà tôi đã bỏ lỡ sẽ giải quyết vấn đề của tôi?
Ngoài ra, tôi không chắc chắn liệu tôi có cần 6lowPan hay không, nhưng khi điều đó có nghĩa là có thể xây dựng trên các giao thức hiện có / tương thích với các hệ thống khác (ví dụ: Linux), tôi sẵn sàng nhận thêm chi phí.
running the entire contiki-os as a FreeRTOS task makes me uncomfortable
Đó chỉ là .. wow! Tôi sẽ không bao giờ nghĩ về điều đó ..