임베디드 시스템과 펌웨어
마이크로컨트롤러에서 AD 컨버터의 변환 결과를 일정한 간격으로 대량으로 가져올 때 DMA를 사용하는 이점으로 올바른 것은 무엇입니까?
- AAD 컨버터의 분해능이 자동으로 올라간다
- B입력 전압이 자동으로 커진다
- C변환이 끝날 때마다 CPU가 인터럽트로 읽을 필요 없이 DMA가 메모리에 나열해 주므로 CPU의 부담이 줄어든다
정답과 해설 보기
정답: C. 변환이 끝날 때마다 CPU가 인터럽트로 읽을 필요 없이 DMA가 메모리에 나열해 주므로 CPU의 부담이 줄어든다
변환할 때마다 인터럽트로 CPU가 결과를 읽으면, 1초에 수만 번 가져오는 경우 인터럽트 오버헤드만으로 CPU 시간의 상당 부분이 쓰입니다. DMA를 사용하면 변환이 끝날 때마다 DMA가 결과를 메모리 배열에 차례로 쓰고, 배열이 가득 찼을 때만 CPU에 알립니다. 타이머로 변환을 시작하도록 설정하는 것과 조합하면, 정확한 간격으로 데이터를 CPU 없이 계속 가져올 수 있습니다.