RISC-V
타겟 only
RISC-V
구조 기반 Espressif chips의 어플리케이션을 빌드하려면 다음을 따라주세요
-
rust-src
component와 함께nightly
툴체인을 설치해주세요:rustup toolchain install nightly --component rust-src
위의 명령은 rust 소스 코드를 다운로드합니다.
rust-src
는 std-lib, core-lib and build-config와 같은 항목들을 포함합니다.
rust-src
를 다운로드하는것은 두 가지 이유때문에 중요합니다:- Determinism(결정론) - core와 std 라이브러리의 내부를 볼 수 있습니다. 높은 수준의 확실성이 필요한 소프트웨어를 작성해야하는 경우, 사용 중인 라이브러리를 확인하는 것이 좋습니다.
- custom targets 빌드하기 -
rustc
는 새 커스텀 타겟의 컴포넌트를 만들때rust-src
를 사용한다. 만약 rust에서 지원을 안하는 triple-target을 타겟으로 할때,rust-src
다운로드는 필수입니다.
For more info on custom targets, read this Chapter from the Embedonomicon.
커스텀 타겟에 대한 자세한 내용은 Embedonomicon의 이 챕터를 읽으세요
-
타겟을 설정합니다:
-
no_std
(베어 메탈) 어플리케이션의 경우 다음을 실행합니다:rustup target add riscv32imc-unknown-none-elf # For ESP32-C2 and ESP32-C3 rustup target add riscv32imac-unknown-none-elf # For ESP32-C6 and ESP32-H2
이 대상은 현재 Tier 2입니다. Rust에서 다양한
RISC-V
extensions을 포함하는riscv32
대상의 다양한 맛을 주목하십시오. -
std
어플리케이션의 경우:
이 대상은 현재 Tier 3이므로
rustup
을 통해 배포되는 사전 빌드된 개체가 없으며no_std
대상과 달리 설치할 필요가 없습니다. 장치에 대한 올바른 대상은 러스트북의 *-esp-idf 섹션을 참조하십시오.riscv32imc-esp-espidf
는 ESP32-C2 및 ESP32-C3 와 같은 atomics을 지원하지않는 SoC 용입니다.riscv32imac-esp-espidf
는 atomics를 지원하는 SoC(ESP32-C6, ESP32-H2, and ESP32-P4 등)용입니다.
-
-
std
프로젝트들을 빌드하려면 다음을 설치하여야합니다:LLVM
컴파일러 인프라- 다른
std
개발 요구사항들 - 프로젝트의 파일
.cargo/config.toml
에서 불안정한 Cargo feature-Z build-std
를 추가합니다. 이 책 뒷부분에서 설명하는 템플릿 프로젝트에는 이미 이 기능이 포함되어있습니다
이제 Espressif의 RISC-V
칩에 프로젝트를 구축하고 실행할 수 있을 것입니다.