Skip to main content

Command Palette

Search for a command to run...

02 - Thiết lập môi trường phát triển dự án nhúng sử dụng Rust

Updated
5 min read
02 - Thiết lập môi trường phát triển dự án nhúng sử dụng Rust

Vài điều cần làm rõ

Mình muốn series này sẽ có sự rõ ràng cần thiết, để tránh người mới làm quen với Rust cảm thấy bối rối. Dưới đây là những thông tin về thành phần và công cụ mình sẽ sử dụng xuyên suốt series, cũng như là những nguồn tài liệu tham khảo cho bạn để làm quen với ngôn ngữ mới này.

Cài đặt môi trường

Dependencies

Trước hết, bạn cần đảm bảo có đủ các công cụ cần thiết để cài đặt Rust

sudo apt update -y
sudo apt install -y curl build-essential

Rust Toolchain

Để cài đặt Rust, chúng ta sẽ sử dụng công cụ rustup. Tất nhiên bạn vẫn có thể cài Rust standalone, tuy nhiên mình khuyến khích bạn sử dụng rustup vì sự đơn giản trong quản lý phiên bản Rust.

Mở Terminal lên và chạy lệnh sau:

curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

Nếu xuất hiện bảng chọn các tùy chọn cài đặt, hãy chọn 1) Proceed with installation (default) bằng cách gõ 1 và Enter nhé.

Cargo là package manager và build system của Rust, nó sẽ được tự động cài đặt sau khi bạn chạy lệnh trên, còn giờ thì hãy thêm cargo vào PATH enviroment variable. Ở đây mình sử dụng shell bash mặc định

nano ~/.bashrc

Thêm dòng này vào cuối file và lưu lại

export PATH="$HOME/.cargo/bin:$PATH"

Khởi động một terminal session mới, hoặc đơn giản chạy lệnh source ~/.bashrc là được

Okay giờ thì kiểm tra phiên bản bằng lệnh rustup -V, kết quả sẽ tương tự sau

rek@RekPC:~$ rustup -V
rustup 1.27.1 (2025-03-14)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.91.1 (ed61e7d7e 2025-11-07)`

Tuy nhiên, một vài feature của esp-rs yêu cầu bạn cần sử dụng phiên bản nightly của Rust toolchain, vì vậy chúng ta sẽ cài đặt nó bằng cách dùng lệnh sau

rustup install nightly

Mình sử dụng ESP32-C3 với kiến trúc tập lệnh là RV32IMC, vì vậy mình muốn file sau khi compile sẽ phù hợp với kiến trúc này. Cài đặt target bằng lệnh

rustup target add riscv32imc-unknown-none-elf

(Nếu bạn dự định sử dụng ESP32 / ESP32-S2 / ESP32-S3 sử dụng Xtensa)

# Cài đặt espup để quản lý toolchain cho target này
cargo install espup --lockednày
# Cài đặt toolchain cần thiết
espup install
# Tự động thiết đặt môi trường mỗi khi mở shell mới
cat $HOME/export-esp.sh >> ~/.bashrc
# Khởi động lại terminal session
source ~/.bashrc

Cài đặt công cụ phát triển

esp-generate

Công cụ này giúp chúng ta khởi tạo dự án với các cấu hình mong muốn một cách nhanh chóng, cài đặt với lệnh sau

cargo install esp-generate --locked

espflash

Bộ công cụ dùng để flash các Espressif SoCs

cargo install espflash --locked

probe-rs (khuyến khích dùng)

Probe-rs là một bộ công cụ hiện đại được viết bằng Rust, dùng để flash và debug cho MCU. Nếu bạn đã dùng qua OpenOCD, mình nghĩ trải nghiệm với probe-rs sẽ khiến bạn thích Rust hơn.

# Download udev rules từ probe.rs
curl -O https://probe.rs/files/69-probe-rs.rules
# Chuyển file rules vào /etc/udev/rules.d
sudo mv 69-probe-rs.rules /etc/udev/rules.d
# Load rules
sudo udevadm control --reload && sudo udevadm trigger
# Thêm user của bạn vào plugdev group
sudo groupadd --system plugdev && sudo usermod -a -G plugdev $USER
# Cài đặt probe-rs
cargo binstall probe-rs-tools
# Hoàn tất cài đặt
probe-rs complete install

esp-config (tùy chọn)

Công cụ hỗ trợ chỉnh sửa tùy chọn cấu hình thông qua Terminal UI, tất nhiên nếu không dùng thì bạn hoàn toàn có thể thay đổi thủ công thông qua file .cargo/config.toml

cargo install esp-config --features=tui --locked

Extension cho VS Code

Để thuận tiện cho việc phát triển với Rust, bạn có thể cài một số extension sau:

  • Rust Syntax

  • Dependi

  • Debugger for probe-rs

  • rust-analyzer

  • Even Better TOML

  • CodeLLDB

Để nhanh chóng cài đủ các extension trên, mình đã đóng gói tất cả vào cùng 1 extension pack, bạn chỉ cần cài extension pack ESP SoCs firmware developing with Rust

Trong VS Code, nhấn tổ hợp Ctrl + P và paste dòng sau rồi Enter là đủ

https://marketplace.visualstudio.com/items?itemName=rek.esp-socs-firmware-developing-with-rust

Kết luận

Với việc thực hiện các bước trên, bạn đã thiết lập môi trường để phát triển dự án nhúng sử dụng Rust một cách hiệu quả 😉
Ở bài viết tiếp theo, chúng ta sẽ làm quen với việc sử dụng Rust trong phát triển dự án nhúng. Tuy nhiên vì Rust là một ngôn ngữ hơi khó học đối với người bắt đầu, minh khuyến khích các bạn tìm hiểu trước trong “Rust Book” và tự làm quen với Rust qua rustlings, ngoài ra series về Rust của RustDev Vietnam cũng rất đáng tham khảo.

Bài viết trước: 01 - Rust là gì và tại sao dùng nó cho hệ thống nhúng?