inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

FreeRTOS 프로그래밍

인터럽트

해당 인터럽트 강의 질문

해결된 질문

242

규철

작성한 질문수 15

1

안녕하세요! 해당 영상을 보다 질문이 생겨 질문 남깁니다:)

해당 영상에서 인터럽트를 disable 시키는 방법으로 interrupt controller 에서 cpu로 가는 신호를 mask하는 방법과 interrupt controller에 들어가는 신호를 막는 방법이 있다고 하셨는데, 이때 첫번째 방법은 cpsid i 명령어를 사용하여 primask 레지스터를 바꾸는 방법이고, 두번째 방법은 NVIC 내부 레지스터를 바꾸는 방법이 맞는건가요?

그렇다면 cpsid i 명령어를 썼다가 cpsie i 명령어를 쓰면 그사이 발생한 인터럽트들이 한번에 발생하는 것인지 궁금합니다! (두번째 방법으로 disable된 인터럽트들은 다시 enable되어도 그사이에 발생한 인터럽트가 발생되지 않는지도 알려주세요)

또한 여기서 말하는 interrupt controller가 NVIC가 맞는지 그렇다면 NVIC와 EXTI의 차이점은 무엇인지 알려주세요!

질문이 많아 죄송합니다ㅠㅠ

운영체제 임베디드 FreeRTOS

답변 1

1

홍영기

안녕하세요. 규철님!

아래와 같이 질문에 답변드립니다.

해당 영상에서 인터럽트를 disable 시키는 방법으로 interrupt controller 에서 cpu로 가는 신호를 mask하는 방법과 interrupt controller에 들어가는 신호를 막는 방법이 있다고 하셨는데, 이때 첫번째 방법은 cpsid i 명령어를 사용하여 primask 레지스터를 바꾸는 방법이고, 두번째 방법은 NVIC 내부 레지스터를 바꾸는 방법이 맞는건가요?

=> 그렇습니다.

그렇다면 cpsid i 명령어를 썼다가 cpsie i 명령어를 쓰면 그사이 발생한 인터럽트들이 한번에 발생하는 것인지 궁금합니다! (두번째 방법으로 disable된 인터럽트들은 다시 enable되어도 그사이에 발생한 인터럽트가 발생되지 않는지도 알려주세요)

=> cpsid 에 의해 차단된 인터럽트들은 대기(pended)하다가, cpsie 에 의해 차단이 풀리게 되면 현재의 각 우선 순위의 높고 낮음에 따라 순서대로 실행됩니다.

또한 여기서 말하는 interrupt controller가 NVIC가 맞는지 그렇다면 NVIC와 EXTI의 차이점은 무엇인지 알려주세요!

=> NVIC 는 CM 의 내부에 위치한 중앙 인터럽트 제어기로 이해하시면 됩니다. 한편 EXTI 는 STM32 내부의 온칩 디바이스를 제외한, 외부 장치에서 발생되는 인터럽트를 처리해주는 장치입니다. 인터럽트 신호가 STM32 의 핀(PIN) 을 통하여 들어오기 때문에 이러한 인터럽트는 GPIO 인터럽트라고도 부릅니다. EXTI 는 중앙 인터럽트 제어기인 NVIC 로 이와같은 외부에서 들어오는 인터럽트를 전달해줍니다.

0

규철

답변 감사합니다! 덕분에 궁금증이 해소되었습니다:)

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

0

57

2

STM32 포팅할 때 STM32 Project가 없음

0

148

2

FreeRTOS 멀티코어 지원안됨?

0

83

2

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

0

82

2

포팅 부탁드립니다!

0

57

1

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

0

64

2

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

0

60

1

수료증 발급 기준 수정 요청

1

69

1

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

1

66

1

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

1

76

2

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

1

69

2

실행순서

1

74

2

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

1

71

2

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

0

79

2

포팅 원합니다.

2

75

2

코루틴 실습질문

1

99

2

TODO 2번 문제

1

140

4

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

1

80

2

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

0

175

2

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

0

119

2

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

1

151

3

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

1

157

2

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

1

119

2

포팅 서비스 부탁드립니다

1

122

2