TaskDelay() 함수처럼 Context Switching을 유발하는 함수는 모두 내부적으로 ISR을 통해 실행되는 것일까요?
669
投稿した質問数 9
상호배제방법-인터럽트금지 강의를 듣다가 궁금한 점이 생겨서 질문드립니다.
TaskDelay() 함수처럼 Context Switching을 유발하는 함수는 모두 내부적으로 ISR을 통해 실행되는 것일까요?
특히 Systick Interrupt를 통해 실행되는 것 같은데, 제가 제대로 이해한 게 맞는지 궁금합니다.
回答 2
0
안녕하세요. kt y님!
결론부터 말씀드리자면, 문맥전환은 모두 ISR(PendSV_Handler) 에 의하여 처리되는 것 맞습니다.
freeRTOS 기반 소프트웨어에서 문맥전환이 실행되는 경로는 다음의 2가지입니다. (1)freeRTOS 커널 API 내부에서 트리거, (2)systick 인터럽트를 포함한 제반 인터럽트 핸들러에서 트리거
비록 트리거가 시작되는 경로는 서로 다르지만 둘다다 PendSV_Handler 에 의해 문맥 전환이 수행되게 됩니다.
PendSV_Handler 동작에 관하여는 과거 질문 글을 참고하시면 좋습니다.
Segger 사의 SystemView를 이용하여 디버깅해 보고 싶어요
0
40
1
ISR에서 xEventGroupSetBitsFromISR() 함수를 사용하려고 합니다.
0
43
1
logicsniffers에서 문맥전환 할때 prvExampleTaskHook() 함수 호출 관련
0
36
2
uC/OS-II RTOS 포팅 관련 질문
0
88
2
만약에 포팅을 할때 1년에 한번 잡는 치명적인 문제를 해결하는 코드가 들어갔다고 가정하면
0
133
2
STM32 포팅할 때 STM32 Project가 없음
0
396
2
FreeRTOS 멀티코어 지원안됨?
0
173
2
[소스코드 분석-configUSE_TIME_SLICING] TASK1,2의 우선순위가 동일할 때, configUSE_TIME_SLICING값 변경에 따른 출력 변화
0
152
2
포팅 부탁드립니다!
0
99
1
포팅 부탁드립니다. <NUCLEO-G071RB>
0
117
2
상호배제 후 되지를 않아서 질문드립니다.
0
112
1
수료증 발급 기준 수정 요청
1
125
1
재진입가능여부에 관한 질문
1
111
1
01_TASKMAN프로젝트 디버깅 모드 실패
1
203
2
그러면 malloc/free가 아닌 동적할당자를 써서 메모리를 할당했기떄문에
1
115
2
실행순서
1
123
2
uart 전송중에는 스위칭이 금지되나요?
1
129
2
스택오버플로우 실습 중 stack size 설정 질문
0
139
2
포팅 원합니다.
2
113
2
코루틴 실습질문
1
159
2
TODO 2번 문제
1
205
4
10. 선점형 커널 그림 설명중 우선순위가 반대인 경우에도 Task B가 먼저 수행되나요?
1
132
2
디버거모드에 진입이 안됩니다.
0
238
2
prvExampleTaskHook 함수 호출 부분에 대해 문의드립니다.
0
178
2

