RTOS(RTX OS)Mutex_Semaphore問題

L

LOSTISLAND

Guest
こんにちはすべて、私はミューテックスとセマフォの違いのみがカウント(セマフォ機能)と、優先順位の逆転(ミューテックス機能)だと思った。今日、私は多分、優先順位の逆転機能または他の何かに関連して何か変なことが発生しました。異なるタスク間のミューテックスやセマフォを取得および解放すると明らかであるが、私はちょうど1つのタスクでそれらを使用するとき、それらの動作は異なります。タスクがロックされますが、タスクがロックされていないミューテックスを使用しているセマフォを使用して。 (用APP_TestTask [コード] __taskボイドAPP_TestTask(ボイド)と呼ばれる一つのタスクがある想像してみてください。;) {os_dly_wait(20); os_sem_wait(Sem_Testは、0xffff); os_sem_send(Sem_Test); os_sem_wait(Sem_Testは、0xffff); os_sem_wait( Sem_Testは、0xffff); Test_Function();}} [/CODE](の[コード] _taskボイドAPP_TestTask(ボイド){; ;) {os_dly_wait(20); os_mut_wait(Mut_Testは、0xffff);(Mut_Test)os_mut_release; os_mut_wait( Mut_Testは、0xffff); os_mut_wait(Mut_Testは、0xffff); Test_Function();}} [/CODE]はそれ天然の何かまたはバグですか?高度に感謝
 
私はこの問題は、セマフォとmutexの本来の定義であると信じています。あなたが1つのタスクを使用しているならば、我々はあなたの "APP_TestTask"が最高の優先順位であることを、システムがアイドル状態のタスク以外にも、と仮定することができます。ミューテックスが優先順位の逆転が組み込まれており、あなたはまた、ただひとつのタスクを持っているので、ミューテックスは常に "APP_TestTask"に分類されます。本質的に、あなたはストールにタスクを引き起こしている、セマフォは、しかし、あなたは両方の賞品とタスク内からセマフォを取得しようとしているので、問題を引き起こしている。私はちょうど1つのタスクを持っているとき、私は、セマフォを使ったことがない。あなたはこれをやっている理由のための具体的な理由はありますか?よろしく、ウィリス
 

Welcome to EDABoard.com

Sponsor

Back
Top