inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

FreeRTOS 프로그래밍

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

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

630

beSlow

작성한 질문수 9

1

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

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

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

운영체제 임베디드 FreeRTOS

답변 2

0

beSlow

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

0

홍영기

안녕하세요. kt y님!

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

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

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

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

만약에 포팅을 할때 1년에 한번 잡는 치명적인 문제를 해결하는 코드가 들어갔다고 가정하면

0

57

2

STM32 포팅할 때 STM32 Project가 없음

0

166

2

FreeRTOS 멀티코어 지원안됨?

0

87

2

[소스코드 분석-configUSE_TIME_SLICING] TASK1,2의 우선순위가 동일할 때, configUSE_TIME_SLICING값 변경에 따른 출력 변화

0

85

2

포팅 부탁드립니다!

0

60

1

포팅 부탁드립니다. <NUCLEO-G071RB>

0

67

2

상호배제 후 되지를 않아서 질문드립니다.

0

62

1

수료증 발급 기준 수정 요청

1

72

1

재진입가능여부에 관한 질문

1

67

1

01_TASKMAN프로젝트 디버깅 모드 실패

1

77

2

그러면 malloc/free가 아닌 동적할당자를 써서 메모리를 할당했기떄문에

1

71

2

실행순서

1

77

2

uart 전송중에는 스위칭이 금지되나요?

1

74

2

스택오버플로우 실습 중 stack size 설정 질문

0

81

2

포팅 원합니다.

2

77

2

코루틴 실습질문

1

100

2

TODO 2번 문제

1

141

4

10. 선점형 커널 그림 설명중 우선순위가 반대인 경우에도 Task B가 먼저 수행되나요?

1

82

2

디버거모드에 진입이 안됩니다.

0

176

2

prvExampleTaskHook 함수 호출 부분에 대해 문의드립니다.

0

120

2

보드 STM32H735IG와 강의 호환 여부 문의

1

153

3

[ L152RE ] 원샷 소프트타이머 실행 잘 되시나요?

1

159

2

Deferred Interrupt Processing 샘플 예제 문의 드립니다.

1

121

2

포팅 서비스 부탁드립니다

1

125

2