私はマイクロコントローラ用の C プログラムをたくさん書いてきましたが、Linux のような OS 上で動作するものは一度もありませんでした。Linux はアプリケーションに与える処理時間をどのように決定しますか? 他のプロセスも実行する時間を確保できるように、OSに何か他のことをして後で戻ってくるように指示するアイドル時間があるときに、何かする必要がありますか? それとも、OSが自動的にそれを行うだけですか?
編集: 詳細の追加 私の c プログラムにはタスク スケジューラがあります。100 ミリ秒ごとに実行されるタスクもあれば、50 ミリ秒ごとに実行されるタスクもあります。私のメイン プログラム ループでは、ProcessTasks を呼び出して、タスクを実行する準備ができているかどうかを確認します。準備ができていない場合は、アイドル関数を呼び出します。アイドル機能は何もしませんが、GPIO ピンを切り替えて、O'scope でアイドル時間を監視できるようにするために、または必要に応じて何かを行うことができます。では、このアイドル関数で sched_yield() を呼び出す必要があるのではないでしょうか?