Sau khi di chuyển một số mã nhúng sang FreeRTOS, tôi bị bỏ lại với một tình huống khó xử thú vị về cơ quan giám sát. Các bộ đếm thời gian watchdog là phải cho ứng dụng của chúng tôi. Sử dụng FreeRTOS cũng là một lợi ích lớn đối với chúng tôi. Khi ứng dụng đơn giản hơn, nó cho phép cơ quan giám sát tại các điểm kịp thời trong luồng logic của nó để chúng ta có thể đảm bảo nhiệm vụ đang tiến hành hợp lý một cách kịp thời.Chiến lược cho ăn một cơ quan giám sát trong môi trường đa nhiệm
Với nhiều tác vụ, điều đó không hề dễ dàng. Một nhiệm vụ có thể bị ràng buộc vì một lý do nào đó, không tiến bộ, nhưng một công việc khác đang làm tốt và có đủ tiến bộ để giữ cho cơ quan giám sát được nuôi dưỡng một cách vui vẻ. Một ý nghĩ là khởi chạy một nhiệm vụ riêng biệt chỉ để nuôi cơ quan giám sát, và sau đó sử dụng một số quầy mà các nhiệm vụ khác tăng thường xuyên, khi nhiệm vụ watchdog đánh dấu, nó sẽ đảm bảo rằng tất cả các quầy trông giống như tiến trình đang được thực hiện trên tất cả các nhiệm vụ khác, và nếu có, hãy tiếp tục và nuôi cơ quan giám sát.
Tôi tò mò những gì người khác đã làm trong các tình huống như thế này?
Chúng tôi đã thực hiện khá nhiều những gì bạn đã nói. Có một kicker, và nhiệm vụ với thời gian đã biết kiểm tra với kicker. Nếu những nhiệm vụ đó không chạy đúng lúc, kicker cũng không chạy. Các kicker nên là chủ đề ưu tiên thấp nhất trong hệ thống, vì vậy nếu hệ thống không có thời gian để có được kicker, sau đó thiết bị sẽ thiết lập lại. (Điều đó cũng cho phép bạn bảo vệ bản thân kicker.) Tôi đang bận, nhưng sẽ cố gắng đưa ra một câu trả lời dài hơn với nhau sau này. – Ross
Tôi dường như nhớ một câu hỏi tương tự trong vòng một tháng qua, chắc chắn với thẻ nhúng. – Dan