ARM 이란 무엇인가?

ARM은 아키텍처를 설계하는 회사에서 만든 내부 설계이다. 이를 만드는 것은 제조사에서 별개로 이루어진다. 예를 들어 내가 공부하려는 STM이 있겠다.

이때 실제 제작되는 ‘Cortex-M’은 코어에 몇 가지 기능을 추가로 붙여서 제작된다.

Cortex-M3의 추가 기능

대부분 디버깅과 관련된 기능으로 ‘Cortex-M3’를 기준으로는 다음과 같은 기능이 있다.

  1. Configurable NVIC
    • 인터럽트 우선순위와 벡터 테이블을 관리하여 효율적인 인터럽트 처리를 지원.
  2. ETM (Embedded Trace Macrocell)
    • 명령어 실행 흐름을 추적하여 상세한 디버깅과 성능 분석을 지원.
  3. DAP (Debug Access Port)
    • 디버거와 MCU 내부(CPU, 메모리) 자원 간의 통신 인터페이스를 제공.
  4. SWV (Serial Wire Viewer)
    • 실시간 이벤트 및 데이터 트레이스를 통해 동작 상태를 모니터링.
  5. MPU (Memory Protection Unit)
    • 메모리 영역에 대해 접근 권한을 제어하여 안정성과 보안을 강화.
  6. Data Watchpoints
    • 특정 메모리 주소나 데이터의 변경을 감지하여 디버거에 알림.
  7. Flash Patch
    • 플래시 메모리의 명령어를 임시로 수정하거나 브레이크포인트를 설정.
  8. Code Interface
    • 코드 실행의 중단, 재개, 브레이크포인트 설정을 제어.
  9. SRAM & Peripheral I/F
    • SRAM 및 주변 장치와 프로세서 간의 데이터 전송을 지원.
  10. Bus Matrix
  • 여러 마스터(CPU, DMA 등)와 슬레이브(SRAM, 주변 장치 등) 간 데이터 흐름을 관리.