Rust on Espressif chips-24-01-2024

https://mabez.dev/blog/posts/esp-rust-24-01-2024/

2024 年 01 月 24 日

這是 esp-rs 專案的下一季度更新,詳細說明了 2023 年 Q4 期間的進展。

Rust 編譯器
上游
在 Q4 期間,我們看到對上游的 RISC-V 目標進行了許多改進。首先,所有的裸機非原子 (not a) 目標現在都啟用了原子載入/存儲的程式碼生成!這對 ESP32C3 和 ESP32C2 的用戶,以及其他 RISC-V 目標用戶來說是一個巨大的障礙。目前尚處於 nightly 階段,但隨著 1.76 版本的釋出,它將會在穩定版上推出。其次,我們新增了 riscv32imafc-unknown-none-elf 目標,為 Espressif 的首款不帶無線電的芯片 ESP32P4 做好準備。我們還將所有當前的裸機 RISC-V 目標提升為第二層級,並透過這樣做填補了缺失的平台支援文件。最後,我們為 ESP32P4 新增了一個 espidf 目標,riscv32imafc-esp-espidf。

Xtensa
在 Espressif 的 LLVM 團隊繼續改進和重啟 Xtensa LLVM 後端,最近已經重啟在 LLVM 17 上。不幸的是,我們目前沒有任何上游進展的報告。

esp-hal – no_std
Q4 推出了 esp-hal 的 v0.13、v0.14 和 v0.15 版本。亮點包括對 PARL_IO、I2S 和 RMT 的新異步驅動程序,以及更新到期待已久的 embedded-hal v1.0!我們通過統一所有芯片的 API 來擴展了低功耗支援,並為 ESP32S2 和 ESP32S3 添加了 ULP (Ultra-Low-Powered) 核心支援。最後,我們實現了一個很酷的功能,就是為 ESP32C6 和 ESP32H2 實現了 flip-link,這使得這樣的芯片能夠零成本檢測堆棧溢出,這對於沒有硬體可以在硬體中捕捉的這種情況是非常好的。請查看完整的更改日誌以獲得所有的詳細信息和更改。

應該注意的一個重要的破壞性變更是,我們不再支持原子模擬,因為上游 Rust 現在支持非原子目標上的原子載入和存儲。正在使用 ESP32S2、ESP32C3 或 ESP32C2 的應用程式的用戶,請閱讀這個內容以便輕鬆升級。對於基於 CAS 的原子操作,你應該切換到 portable-atomic 庫。我們非常感謝 @taiki-e 在 portable-atomic 中新增了對我們目標的支援,並支持 libc,以及推動了原子載入/存儲編譯器的變更!

esp-wifi – no_std
Q4 我們為 ESP32H2 新增了對 BLE 的支援,在 ESP32 上修復了共存支援,並新增了一個基於 crates.io 的基準範例來測試 WiFi 的吞吐量。除此之外,我們最終在 crates.io 上發布了 esp-wifi!我們花了很長時間來完善和文檔化,才有這一刻,我們很高興能夠將其發布。

工具
espflash
Q4 推出了 espflash 的 v2.1.0,這是一個小版本,增加了一些新功能,用於擦除區域和分區。然後我們開始了 v3.0 的開發週期,這將默認包括基於 Rust 的快閃存根!查看未釋出版本的更改日誌,看看目前已經添加了哪些功能。

probe-rs
在 Q4 期間,對於 probe-rs 和 Espressif 芯片進行了大量的進展。這一切都是為了開始在 CI 中使用實際硬件進行測試,這稱為硬件在環 (HIL) 測試。

新的 Espressif 芯片都是基於 RISC-V 架構的,probe-rs 已經對此有很好的支援。然而,ESP32、ESP32S2 和 ESP32S3 是基於 Xtensa 架構的,因此為了在 CI 中測試這些芯片,我們需要在 probe-rs 中具有 Xtensa 架構的支援,這正是我們要做的事情。我很高興地報告說,我們在 probe-rs 中有足夠的 Xtensa 支援,可以連接、檢查並快閃 ESP32S2 和 ESP32S3!這也帶來了對所有芯片的巨大速度提升,這要歸功於 probe-rs 中 USB-SERIAL-JTAG 和 FTDI 驅動程序的改進。所有這些都是由 probe-rs 團隊和其中一位特別的個人 Dániel Buga 的幫助和支持,當然還有他辛勤工作的具體個人。

RFC
esp-openthread
我們正在尋找有關 esp-openthread 下一步開發的意見,如果你想在你的項目或產品中使用網絡,請參閱此 RFC 問題。

未來工作
要瞭解我們本季度將要做什麼工作,請查看 Jesse Braham 的發文!

via Scott Mabin

January 25, 2024 at 06:59AM

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *