
🔎 핵심 철학: 성능은 높이고, 전력 소모는 줄이며, 정해진 시간 안에 예측 가능하게 처리할 수 있도록 설계됨.
| 항목 | 내용 |
|---|---|
| 구조 | 32-bit RISC, Harvard 구조 |
| 명령어 집합 | Thumb-1 (16비트), Thumb-2 (16/32비트 혼합) |
| 파이프라인 | 3단계 (Fetch – Decode – Execute) + 분기 예측 |
| 인터럽트 수 | 최대 240개 (Nested 지원) |
| 성능지표 | 1.25~1.95 DMIPS/MHz |
| 전력 효율 | µW/MHz 단위의 소비전력 (180ULL 공정 기준: 151µW/MHz) |
※ DMIPS는 Dhrystone MIPS로, 임베디드 성능 벤치마크 단위이다.
| 이름 | 설명 |
|---|---|
| R0~R12 | 범용 레지스터 |
| R13 | Stack Pointer (SP) – Main Stack / Process Stack |
| R14 | Link Register (LR) – 함수 리턴 주소 저장 |
| R15 | Program Counter (PC) – 다음 명령 주소 |
| xPSR | Program Status Register – 조건 플래그 포함 (N, Z, C, V, Q 등) |
⚠️ Thumb 상태에서 실행되므로 EPSR의 T bit는 항상 1이다.
또한, PRIMASK, FAULTMASK, BASEPRI 등의 인터럽트 마스크 레지스터를 통해 예외 처리와 임계 구간 보호가 가능하다.
| 주소 영역 | 용도 |
|---|---|
| 0x00000000 ~ 0x1FFFFFFF | 코드 영역 (On-chip Flash, 벡터 테이블 등) |
| 0x20000000 ~ 0x3FFFFFFF | SRAM 영역 (스택, 데이터 등) |
| 0x40000000 ~ 0x5FFFFFFF | Peripheral 영역 (AHB/APB 장치) |
| 0x60000000 ~ 0x9FFFFFFF | 외부 RAM 영역 (SDRAM 등) |
| 0xA0000000 ~ 0xDFFFFFFF | 외부 장치 영역 (LCD, SD카드 등) |
| 0xE0000000 ~ 0xFFFFFFFF | 시스템 제어 영역 (NVIC, SCB 등) |
예:
0x20000000의 bit[3]을1로 설정 →0x2200000C에1저장
| 기능 | 설명 |
|---|---|
| Sleep Mode | 기본 절전 상태 (코어만 정지) |
| Deep Sleep | 거의 모든 시스템 정지, WIC로만 깨울 수 있음 |
| WFI / WFE | Wait for Interrupt / Wait for Event 명령어 사용 |
| Sleep-on-exit | 인터럽트 종료 시 바로 Sleep 진입 |
이런 기능을 통해 배터리 기반 IoT 기기에서 장시간 동작이 가능하게 한다.
| 항목 | 요약 설명 |
|---|---|
| Cortex-M4 | ARM의 MCU용 고성능 저전력 프로세서, Thumb-2 명령 기반 |
| 파이프라인 | 3단계 (Fetch–Decode–Execute), 분기 예측 포함 |
| 인터럽트 | 최대 240개, 우선순위 및 Nesting 지원 |
| 레지스터 | 16개 (SP, PC, LR 포함) + 상태 레지스터(xPSR 등) |
| 메모리 맵 | 4GB 구조, 코드/데이터/외부장치/시스템 제어 영역 구분 |
| Bit-band | 단일 비트 조작을 위한 주소 매핑 지원 |
| 저전력 | WFI/WFE, Sleep-on-exit, Deep Sleep 등 다수의 절전 기능 |
| 디버깅 | Breakpoint, Watchpoint, SWD, Program Trace 지원 |