ARM 이란 무엇인가?
ARM은 아키텍처를 설계하는 회사에서 만든 내부 설계이다. 이를 만드는 것은 제조사에서 별개로 이루어진다. 예를 들어 내가 공부하려는 STM이 있겠다.
이때 실제 제작되는 ‘Cortex-M’은 코어에 몇 가지 기능을 추가로 붙여서 제작된다.
Cortex-M3의 추가 기능
대부분 디버깅과 관련된 기능으로 ‘Cortex-M3’를 기준으로는 다음과 같은 기능이 있다.
- Configurable NVIC
- 인터럽트 우선순위와 벡터 테이블을 관리하여 효율적인 인터럽트 처리를 지원.
- ETM (Embedded Trace Macrocell)
- 명령어 실행 흐름을 추적하여 상세한 디버깅과 성능 분석을 지원.
- DAP (Debug Access Port)
- 디버거와 MCU 내부(CPU, 메모리) 자원 간의 통신 인터페이스를 제공.
- SWV (Serial Wire Viewer)
- 실시간 이벤트 및 데이터 트레이스를 통해 동작 상태를 모니터링.
- MPU (Memory Protection Unit)
- 메모리 영역에 대해 접근 권한을 제어하여 안정성과 보안을 강화.
- Data Watchpoints
- 특정 메모리 주소나 데이터의 변경을 감지하여 디버거에 알림.
- Flash Patch
- 플래시 메모리의 명령어를 임시로 수정하거나 브레이크포인트를 설정.
- Code Interface
- 코드 실행의 중단, 재개, 브레이크포인트 설정을 제어.
- SRAM & Peripheral I/F
- SRAM 및 주변 장치와 프로세서 간의 데이터 전송을 지원.
- Bus Matrix
- 여러 마스터(CPU, DMA 등)와 슬레이브(SRAM, 주변 장치 등) 간 데이터 흐름을 관리.
