RTOS (RTX OS) Mutex_Semaphore의 문제

L

LOSTISLAND

Guest
안녕 모두, 난 뮤텍스와 세마포어의 유일한 차이가 카운트 (세마포어 기능) 및 우선 순위 반전 (뮤텍스 기능)입니다 알았는데. 오늘은 어쩌면 우선 순위 반전 기능 또는 다른 뭔가 관련이 뭔가 이상한가 발생했습니다. 도착하고 다른 작업 사이에 뮤텍스 나 세마포를 공개하는 것은 분명하다하지만 하나의 작업에서 그들을 사용할 때, 그들의 행동은 다릅니다. 작업이 잠겨 있지만 작업이 잠겨 있지 않은 뮤텍스를 사용하는 세마포어을 사용합니다. (대한 APP_TestTask
Code:
 __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 ();}}
는 자연 무언가 또는 버그입니까? 고급에 감사합니다
 
나는 문제가 세마포어와 뮤텍스의 고유 정의로 자리 잡고 있다고 생각합니다. 한 작업을 사용하는 경우 다음에 우리가 시스템 유휴 작업 외에,하는가 'APP_TestTask "는 가장 높은 우선 순위, 가정 할 수 있습니다. 뮤텍스는 우선 순위 반전을 포함하고, 또한 하나의 작업을하기 때문에, 뮤텍스는 항상 "APP_TestTask"에 떨어질 것입니다. 기본적으로, 당신이 칸으로 작업을 일으키는, 세마포어 그러나, 당신은 모두 거리에주고 작업 내에서 세마포어를하려고되기 때문에 문제가 발생합니다. 내가 한 작업을 할 때 세마포어를 사용하지 않았다. 당신이이 일을하는 이유에 대한 특정 이유가 있나요? 감사합니다 윌리스
 

Welcome to EDABoard.com

Sponsor

Back
Top