임베디드 시스템과 펌웨어

많은 마이크로컨트롤러에서 변경하지 않는 큰 테이블(폰트 데이터 등)을 const를 붙여 선언하는 이점으로 올바른 것은 무엇입니까?

  1. A플래시 메모리에 놓여 적은 RAM을 사용하지 않아도 된다
  2. B테이블의 내용이 자동으로 압축된다
  3. C테이블의 내용을 실행 중에 자유롭게 바꿔 쓸 수 있게 된다
정답과 해설 보기

정답: A. 플래시 메모리에 놓여 적은 RAM을 사용하지 않아도 된다

마이크로컨트롤러에서는 프로그램을 두는 플래시 메모리가 수백 KB 있어도 RAM은 수십 KB인 경우가 흔합니다. const를 붙이지 않은 초기값 있는 배열은 .data가 되어 기동 시 플래시에서 RAM으로 복사되므로 RAM을 사용합니다. const를 붙이면 읽기 전용 데이터로서 플래시에 둔 채 읽을 수 있습니다. 마이크로컨트롤러에 따라서는 플래시에 두기 위한 별도의 지정이 필요한 것도 있습니다.

이 분야 연습하기 분야로 돌아가기

임베디드 시스템과 펌웨어의 다른 문제

  1. JTAG나 SWD 같은 디버그용 인터페이스로 할 수 있는 것으로 올바른 것은 무엇입니까?
  2. 1 ms마다 일정한 제어 계산을 하고 싶습니다. OS를 사용하지 않는 마이크로컨트롤러에서의 구현으로 가장 적절한 것은 무엇입니까?
  3. 마이크로컨트롤러의 브라운아웃 검출(BOD, 브라운아웃 리셋)의 역할로 올바른 것은 무엇입니까?
  4. 인터럽트에 우선순위를 줄 수 있는 마이크로컨트롤러에서, 우선순위가 낮은 인터럽트의 핸들러를 실행 중에 우선순위가 높은 인터럽트가 발생했습니다. 일반적으로 어떻게 됩니까? (인터럽트 중첩을 허용하는 설정으로 가정)
  5. C 언어에서 레지스터 reg의 비트 3만 1로 만들고 나머지 비트는 바꾸지 않는 올바른 표기는 무엇입니까?

이 분야의 비교