실시간 제어에 맞춰 설계된 코어다. 리눅스가 도는 Cortex-A 와 달리 MMU 가 없고 결정성이 높다.
이 프로젝트의 칩
S32K144 Cortex-M4F 약 112 MHz, 플래시 512 KB, SRAM 64 KB
S32K344 Cortex-M7 더 빠르고 메모리도 크다
**M4F 의 F 는 부동소수점 유닛(FPU)**이다. 단정밀도 float 연산이 하드웨어로 처리되고, DSP 확장 명령(SIMD MAC)도 있어 필터·추론 연산에 쓸 수 있다.
인터럽트 구조가 중요하다
NVIC 라는 컨트롤러가 우선순위를 관리한다.
PRIMASK 모든 인터럽트를 끈다 (M0+ 부터)
BASEPRI 특정 우선순위 이하만 끈다 (M3 이상)
BASEPRI 가 있어야 "안전 ISR 은 임계 구역을 뚫고 들어오게" 만들 수 있다. M0/M0+ 에서는 PRIMASK 방식만 가능해서 임계 구역이 모든 인터럽트를 막는다.
Anti-pinch 감시를 임계 구역이 밀면 안 되는 이 프로젝트에서, 이 차이가 실제 설계 여유를 만든다.