2016-07-07 2 views
0

freeRTOS 작업 스케줄러에 대한 약간의 질문 :FreeRTOS 컨텍스트 스위치 - xQueueSend

가 xQueueSend 함수 내에서 호출 작업 스케줄러를가하거나 진드기 다음 시스템에 전화를한다?

+1

여러 장소에서 같은 질문에 답하는 것이 싫지만 https://sourceforge.net/p/freertos/discussion/382005/thread/f0cb1a73/에 대한 링크를 게시합니다 ([ 지원 포럼 아카이브] (http://www.freertos.org/FreeRTOS_Support_Forum_Archive/freertos_support_forum_archive_index.html)를 참고하십시오. – Richard

답변

0

FreeRTOS는 항상 실행할 수있는 가장 우선 순위가 높은 작업을 실행합니다. 즉, 다른 작업이 차단 해제되고 차단 해제 된 작업의 우선 순위가 실행 대기열보다 높은 방식으로 대기열, 세마포어, 작업 알림, 이벤트 그룹, 뮤텍스 (기타?)로 이동하는 경우, 스케줄러는 차단되지 않은 작업으로 전환합니다. 그 예외는 응용 프로그램 작성자가 vTaskSuspendAll()을 호출하여 스케줄러를 잠근 경우입니다.이 경우 차단되지 않은 작업은 응용 프로그램 작성자가 xTaskResumeAll()을 호출 할 때까지 보류됩니다.이 경우 가장 우선 순위가 높은 작업은 다음과 같습니다. run은 xTaskResumeAll()에 대한 호출이 even을 반환하기 전에 즉시 실행되기 시작합니다.

관련 문제