inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

FreeRTOS 프로그래밍

configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY / configLIBRARY_LOWEST_INTERRUPT_PRIORITY 문의

646

김영선

작성한 질문수 7

2

 

다음 4가지 우선순위 설정에 관해서 기존 시스템에 freertos 포팅시 기존시스템의 인터럽트와 충돌하지 않기 위해 설정하는거 같아 보입니다.

기존 시스템 configPRIO_BITS = 5 인 상태이며

사용하던 uart interrupt priority 1인 상태에서 freertos 를 포팅하고싶은데

다음에 값들이 어떤 관계가 있는지 모르겠습니다.

configLIBRARY_LOWEST_INTERRUPT_PRIORITY

configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY

configKERNEL_INTERRUPT_PRIORITY

configMAX_SYSCALL_INTERRUPT_PRIORITY

 

 

운영체제 임베디드 FreeRTOS

답변 1

1

홍영기

안녕하세요. 김영선님!

수백 단어의 글보다는 한장의 그림이 때로는 이해하기 더 쉬울때가 많습니다.

시간을 들여 표를 그려보았습니다. 도움이 되셨으면 합니다 ^^

표에서 보이는 5, 15 등의 우선순위 값 설정은 제 강의에서의 디폴트 값이면서 동시에 STM32CubeIDE 디폴트 값이기도 합니다. 참고해주세요

image

자세한 내용을 위의 표를 참고해주시고 핵심만 간추려 보겠습니다. 열거하셨던 4가지 상수 값 중에 가장 중요한 상수는 2가지(configKERNEL_INTERRUPT_PRIORITY, configMAX_SYSCALL_INTERRUPT_PRIORITY) 입니다. 이 상수값이 주로 사용되는 곳은 freeRTOS 소스 중에서 'port.c' 입니다

이 상수값은 각각 FreeRTOS 에서 지원하는 인터럽트 우선순위의 하방(bottom)과 상방(top)을 결정짓는 역할이죠. 그렇다고 해서 이 구간내의 우선 순위만 사용할 수 있는 것은 아닙니다.

NON-RTOS HW Interrupts 범주의 인터럽트들은 RTOS 에서 관리하는 대상이 아니기 때문에 장점과 단점을 함께 가집니다.

장점을 먼저 말씀드리자면, 언제든지 RTOS 을 선점할 수 있습니다. 여기에는 사용자 코드 뿐만 아니라 커널도 해당됩니다. 이 장점은 언제든지 단점으로 돌변할 수도 있는데, 인터럽트 실행 시간을 최적화 하지 않은 상태에서 사용하면 RTOS 실행의 안정성을 해칠 수 있습니다.

 

uart interrupt 의 우선순위를 1로 사용한다고 말씀하셨습니다.

uart 인터럽트를 RTOS awareness 인터럽트나 NON RTOS 인터럽트 중에서 선택하시면 됩니다.

이 또한 표를 참고해서 이해해주시면 될 것 같습니다.

추가적인 궁금한 점 있으시면 다시 글 남겨주세요

 

0

김영선

감사합니다. 표로 보내 이해가 잘되네요^^

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

0

57

2

STM32 포팅할 때 STM32 Project가 없음

0

166

2

FreeRTOS 멀티코어 지원안됨?

0

87

2

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

0

83

2

포팅 부탁드립니다!

0

60

1

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

0

67

2

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

0

61

1

수료증 발급 기준 수정 요청

1

72

1

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

1

66

1

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

1

77

2

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

1

70

2

실행순서

1

76

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

119

2

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

1

153

3

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

1

159

2

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

1

121

2

포팅 서비스 부탁드립니다

1

125

2