回覆列表
  • 1 # 佐一笑

    比較爽的地方:

    調庫方便,相比C語言裝庫要調一堆構建選項配好幾種構建工具,有一個統一的 cargo 來管理這些問題顯得非常方便,很多原來我寧可手寫的東西(比如堆記憶體管理)現在我都可以選擇調庫了(alloc-cortex-m)

    hal抽象層次較高,舉一個調主時鐘頻率的例子,用C語言hal寫要算一堆引數設定好幾個暫存器,還要調flash的latency(我掉過坑),rust的hal只需要sysclk(72.mhz())即可,當然如果你習慣了使用C的hal,那確實需要一些時間來適應

    比較不爽的地方:

    寫一些需要手動設定暫存器的中斷處理的時候(例如上下文切換的sv),絕對不能使用hal提供的方案,也不能在處理函式中呼叫rust函式(例如用hal提供的開臨界區函式),也不能用普通的#[no_mangle]函式,而是必須用特別的#[naked]函式,否則暫存器的值一定會被破壞,當然本來這些函式習慣上也會用匯編編寫,但看到hal提供了卻用不了還是挺難受的

    資料相對C較少(當然這個事情也得靠我們每一個使用者去改變)

    總之,個人認為,在部分非關鍵場合及教學場合下的嵌入式開發,已經可以考慮開始使用Rust.。

  • 2 # Echa攻城獅

    目前正在實驗用Rust在stm32上寫os(專案剛剛開始,還沒啥程式碼)

    GitHub地址

    https://github.com/longfangsong/rs-rtt

    比較爽的地方:

    調庫方便,相比C語言裝庫要調一堆構建選項配好幾種構建工具,有一個統一的 來管理這些問題顯得非常方便,很多原來我寧可手寫的東西(比如堆記憶體管理)現在我都可以選擇調庫了()hal抽象層次較高,舉一個調主時鐘頻率的例子,用C語言hal寫要算一堆引數設定好幾個暫存器,還要調flash的latency(我掉過坑),rust的hal只需要即可,當然如果你習慣了使用C的hal,那確實需要一些時間來適應

    比較不爽的地方:

    寫一些需要手動設定暫存器的中斷處理的時候(例如上下文切換的sv),絕對不能使用hal提供的方案,也不能在處理函式中呼叫rust函式(例如用hal提供的開臨界區函式),也不能用普通的函式,而是必須用特別的函式,否則暫存器的值一定會被破壞,當然本來這些函式習慣上也會用匯編編寫,但看到hal提供了卻用不了還是挺難受的資料相對C較少(當然這個事情也得靠我們每一個使用者去改變)

    總之,個人認為,在部分非關鍵場合及教學場合下的嵌入式開發,已經可以考慮開始使用Rust。

    另:今年嵌入式課的大作業就決定拿Rust寫了。

  • 中秋節和大豐收的關聯?
  • 孤島驚魂5沉船殘骸進入碉堡怎麼進?