개발 접근 방식의 개요
Espressif chips에서 Rust를 사용하는 방법은 다음과 같습니다.:
std
라이브러리, a.k.a. 스탠다드 라이브러리 사용하기.core
라이브러리 (no_std
), a.k.a. 배어메탈 개발 사용하기.
두 접근 방식 모두 장점과 단점이 있으므로, 프로젝트의 필요에 따라 결정을 내려야 합니다. 이 장에는 두 가지 접근 방식에 대한 개요가 포함되어 있습니다.
The Embedded Rust Book의 다양한 런타임 비교도 참조하십시오.
GitHub의 esp-rs organization은 Espressif 칩에서 Rust를 실행하는 것과 관련된 여러 저장소의 홈입니다. 필요한 크레이트의 대부분은 여기에 소스 코드를 호스팅하고 있다.
네이밍 컨벤션 레포지토리
esp-rs organization에서, 우리는 다음과 같은 표현을 사용합니다:
esp-
로 시작하는 저장소는no_std
접근 방식에 초점을 맞추고 있다. 예를 들어,esp-hal
no_std
는 베어 메탈 위에서 작동하므로,esp-
는 Espressif chip 이다.
esp-idf-
로 시작하는 저장소는std
접근 방식에 초점을 맞추고 있다. 예를 들어,esp-idf-hal
std
는 베어 메탈을 제외하고esp-idf-
인 추가 레이어가 필요합니다.
Espressif 제품 지원
⚠️ 참고:
- ✅ - 이 기능은 구현되어있거나 지원됩니다.
- ⏳ - 그 기능은 개발 중입니다.
- ❌ - 이 기능은 지원되지 않습니다.
Chip | std | no_std |
---|---|---|
ESP32 | ✅ | ✅ |
ESP32-C2 | ✅ | ✅ |
ESP32-C3 | ✅ | ✅ |
ESP32-C6 | ✅ | ✅ |
ESP32-S2 | ✅ | ✅ |
ESP32-S3 | ✅ | ✅ |
ESP32-H2 | ✅ | ✅ |
ESP8266 | ❌ | ✅ |
⚠️ 참고: ESP8266 시리즈는 이 책의 범위를 벗어난다. ESP8266 시리즈에 대한 Rust 지원은 제한적이며 Espressif에서 공식적으로 지원되지 않습니다.
특정 상황에서 지원되는 제품은 책 전체에서 _지원되는Espressif 제품들_이라고 불릴 것이다.