기존 코드가 너무 스파게티 코드가 되어버려서 다시 설계하기로 했다.
secure_rtos/
├── src/
│ ├── main.rs : 부트 및 커널 초기화
│ ├── kernel.rs : 커널 (스케줄러, MPU, 드라이버 등록)
│ ├── task.rs : 태스크/프로세스 메모리 구조
│ ├── mpu.rs : MPU 관리 (STM32F4 MPU 직접 제어)
│ ├── driver/
│ │ └── gpio.rs : 안전한 GPIO 드라이버
│ ├── ipc.rs : (향후) 커널 IPC
├── memory.x : 링커 스크립트 (RAM, FLASH 매핑)
├── Cargo.toml : 의존성 정의
└── .cargo/config.toml : 크로스 컴파일 설정
| 구성 요소 | 설명 |
|---|---|
main.rs | 커널 부팅, 태스크 등록 |
kernel.rs | 드라이버/태스크 등록, MPU 설정, 스케줄링 |
task.rs | TCB 구조체 정의, 태스크 생성 및 메모리 분리 |
mpu.rs | Cortex-M4용 MPU 세팅 |
driver/gpio.rs | LED 및 버튼에 대한 안전한 드라이버 (embedded-hal 사용 가능) |
ipc.rs | 태스크 간 통신 큐/버퍼 |