程式碼研究室:QEMU 教育版驅動程式庫

驅動程式可提供軟體介面,以便與硬體 (或虛擬) 通訊 裝置內嵌入或連接到系統的裝置在 Fuchsia 中,驅動程式是執行在系統元件拓樸中的使用者空間元件,而驅動程式架構則是建構在元件架構提供的概念和工具之上。驅動程式會使用透過 FIDL 建立的功能和連線,與其他驅動程式和非驅動程式元件互動。

在本程式碼研究室中,您將建構一個 Fuchsia 驅動程式元件,其目標是 QEMU 中內建的虛擬裝置 (該裝置支援 Fuchsia 模擬器),名為 edu,這是用於編寫驅動程式的教育用裝置,可計算給定整數的階乘。您也會探討如何使用 Fuchsia SDK 規格。

課程內容

  • 探索裝置節點並繫結至裝置節點
  • 註冊及載入新的裝置驅動程式庫
  • 與執行中的裝置驅動程式庫互動

必要條件

事前準備

根據先決條件,您在 Bazel 工作區 fuchsia-drivers/ 目錄內。這是含有 WORKSPACE.bazel 檔案的目錄,代表工作區的根目錄。在整個程式碼研究室中,這個根目錄會使用 // 前置字串來參照。適用對象 例如,路徑 //fuchsia-codelab 代表名為 fuchsia-codelab 位於 Bazel 工作區的根目錄。

Bazel 工作區也會透過 tools/ 目錄中的 Fuchsia SDK。本程式碼研究室假設您使用的是 從 Bazel 工作區內安裝 SDK 工具,因此建議您更新 PATH 加入 SDK 的 tools/ 目錄,或使用 以下指令:

alias ffx=tools/ffx
alias bazel=tools/bazel