인프런 커뮤니티 질문&답변

beSlow님의 프로필 이미지
beSlow

작성한 질문수

FreeRTOS 프로그래밍

상호배제방법-인터럽트금지

TaskDelay() 함수처럼 Context Switching을 유발하는 함수는 모두 내부적으로 ISR을 통해 실행되는 것일까요?

작성

·

509

1

상호배제방법-인터럽트금지 강의를 듣다가 궁금한 점이 생겨서 질문드립니다.

TaskDelay() 함수처럼 Context Switching을 유발하는 함수는 모두 내부적으로 ISR을 통해 실행되는 것일까요?

특히 Systick Interrupt를 통해 실행되는 것 같은데, 제가 제대로 이해한 게 맞는지 궁금합니다.

답변 2

0

beSlow님의 프로필 이미지
beSlow
질문자

명쾌하게 이해가 되었습니다. ^^ 좋은 강의 감사합니다!

0

홍영기님의 프로필 이미지
홍영기
지식공유자

안녕하세요. kt y님!

결론부터 말씀드리자면, 문맥전환은 모두 ISR(PendSV_Handler) 에 의하여 처리되는 것 맞습니다.

freeRTOS 기반 소프트웨어에서 문맥전환이 실행되는 경로는 다음의 2가지입니다. (1)freeRTOS 커널 API 내부에서 트리거, (2)systick 인터럽트를 포함한 제반 인터럽트 핸들러에서 트리거

비록 트리거가 시작되는 경로는 서로 다르지만 둘다다 PendSV_Handler 에 의해 문맥 전환이 수행되게 됩니다.

PendSV_Handler 동작에 관하여는 과거 질문 글을 참고하시면 좋습니다.

beSlow님의 프로필 이미지
beSlow

작성한 질문수

질문하기