Đối với MCU kim loại được khoanh vùng, So sánh với mã tự chế với vòng lặp nền cộng với kiến trúc ngắt hẹn giờ, lợi ích của hệ điều hành không phòng ngừa là gì? Điều gì trong số những lợi ích này đủ hấp dẫn để một dự án chấp nhận một hệ điều hành không ưu tiên, thay vì sử dụng mã tự chế với kiến trúc vòng lặp nền?
.
Giải thích cho câu hỏi:
Tôi thực sự đánh giá cao tất cả những người đã trả lời câu hỏi của tôi. Tôi cảm thấy câu trả lời đã gần như ở đó. Tôi thêm lời giải thích này vào câu hỏi của mình ở đây cho thấy sự cân nhắc của riêng tôi và có thể giúp thu hẹp câu hỏi hoặc làm cho nó chính xác hơn.
Những gì tôi đang cố gắng làm là hiểu cách chọn RTOS phù hợp nhất cho một dự án nói chung.
Để đạt được điều này, hiểu rõ hơn về các khái niệm cơ bản và lợi ích hấp dẫn nhất từ các loại RTOS khác nhau và mức giá tương ứng sẽ giúp ích, vì không có RTOS tốt nhất cho tất cả các ứng dụng.
Tôi đã đọc sách về HĐH vài năm trước nhưng tôi không còn mang theo chúng nữa. Tôi đã tìm kiếm trên internet trước khi tôi đăng câu hỏi của mình ở đây và thấy thông tin này hữu ích nhất: http://www.ustudy.in/node/5456 .
Có rất nhiều thông tin hữu ích khác như phần giới thiệu trong trang web của RTOS khác nhau, các bài viết so sánh lịch trình ưu tiên và lập lịch không ưu tiên, v.v.
Nhưng tôi đã không tìm thấy bất kỳ chủ đề nào được đề cập khi chọn RTOS không ưu tiên và khi nào tốt hơn chỉ nên viết mã của riêng bạn bằng cách sử dụng ngắt hẹn giờ và vòng lặp nền.
Tôi chắc chắn có câu trả lời của riêng mình nhưng tôi không đủ hài lòng với chúng.
Tôi thực sự muốn biết câu trả lời hoặc quan điểm từ những người xuất chúng hơn, đặc biệt là trong thực tiễn ngành công nghiệp.
Sự hiểu biết của tôi cho đến nay là: cho
dù sử dụng hay không sử dụng HĐH, một số loại mã lập lịch nhất định luôn luôn cần thiết, thậm chí nó ở dạng mã như:
in the timer interrupt which occurs every 10ms
if(it's 10ms)
{
call function A / execute task A;
}
if(it's 50ms)
{
call function B / execute task B;
}
Lợi ích 1:
Một hệ điều hành không ưu tiên chỉ định cách thức / phong cách lập trình cho mã lập lịch, để các kỹ sư có thể chia sẻ cùng một quan điểm ngay cả khi họ không ở trong cùng một dự án trước đó. Sau đó, với cùng quan điểm về nhiệm vụ khái niệm, các kỹ sư có thể làm việc trên các nhiệm vụ khác nhau và kiểm tra chúng, lập hồ sơ độc lập hết mức có thể.
Nhưng chúng ta thực sự có thể kiếm được bao nhiêu từ việc này? Nếu các kỹ sư đang làm việc trong cùng một dự án, họ có thể tìm cách chia sẻ cùng một quan điểm mà không cần sử dụng một hệ điều hành không ưu tiên.
Nếu một kỹ sư đến từ một dự án hoặc công ty khác, anh ta sẽ đạt được lợi ích nếu anh ta biết hệ điều hành trước đó. Nhưng nếu anh ta không làm thế, thì một lần nữa, dường như anh ta không học được một hệ điều hành mới hay một đoạn mã mới nào.
Lợi ích 2:
Nếu mã hệ điều hành đã được kiểm tra tốt, vì vậy nó sẽ tiết kiệm thời gian từ việc gỡ lỗi. Đây thực sự là một lợi ích tốt.
Nhưng nếu ứng dụng chỉ có khoảng 5 tác vụ, tôi nghĩ sẽ không thực sự lộn xộn khi viết mã của riêng bạn bằng cách sử dụng ngắt hẹn giờ và vòng lặp nền.
Một hệ điều hành không ưu tiên ở đây được đề cập đến một hệ điều hành thương mại / miễn phí / kế thừa với một bộ lập lịch không ưu tiên.
Khi tôi đăng câu hỏi này, tôi chủ yếu nghĩ về một số HĐH nhất định như:
(1) KISS Kernel (Một RTOS nhỏ không khước từ - được yêu cầu bởi trang web của nó)
http://www.frontiernet.net/~rhode/kisskern.html
(2) uSmartX (RTOS nhẹ - được tuyên bố bởi trang web của nó)
(3) FreeRTOS (Đó là RTOS được ưu tiên, nhưng theo tôi hiểu, nó cũng có thể được định cấu hình là RTOS không phòng ngừa)
(4) uC / OS (tương tự FreeRTOS)
(5) ) mã hệ điều hành / lịch trình kế thừa ở một số công ty (thường được thực hiện và duy trì bởi công ty trong nội bộ)
(Không thể thêm nhiều liên kết vì giới hạn từ tài khoản StackOverflow mới)
Theo tôi hiểu, một hệ điều hành không phòng ngừa là một tập hợp các mã này:
(1) một bộ lập lịch sử dụng chiến lược không phòng ngừa.
(2) các phương tiện để liên lạc giữa các tác vụ, mutex, đồng bộ hóa và kiểm soát thời gian.
(3) quản lý bộ nhớ.
(4) Các cơ sở hữu ích khác / thư viện như File System, mạng stack, GUI và vv (FreeRTOS và UC / OS cung cấp này, nhưng tôi không chắc chắn nếu họ vẫn làm việc khi scheduler được cấu hình như không ưu tiên)
Một số chúng không phải lúc nào cũng ở đó Nhưng lịch trình là phải.