驅動程式會提供軟體介面,用於與嵌入系統或連線至系統的硬體 (或虛擬) 裝置通訊。在 Fuchsia 中,驅動程式是執行在系統元件拓樸中的使用者空間元件,而驅動程式架構則是建構在元件架構提供的概念和工具之上。驅動程式會使用透過 FIDL 建立的功能和連線,與其他驅動程式和非驅動程式庫元件互動。
在本程式碼研究室中,您將建構一個 Fuchsia 驅動程式庫元件,其目標是 QEMU 中內建的虛擬裝置 (可支援 Fuchsia 模擬器),名為 edu
,這是用於編寫驅動程式的教育用裝置,可計算給定整數的階乘。您也會瞭解如何使用 Fuchsia SDK 提供的工具與驅動程式互動。
課程內容
- 探索裝置節點並繫結至該節點
- 註冊及載入新的裝置驅動程式庫
- 與執行中的裝置驅動程式庫互動
必要條件
- 執行 Linux 的 x64 機器
- 使用 SDK 驅動程式庫程式範例存放區檢出的 SDK 設定的 Fuchsia SDK 環境
core.x64
適用的Emulator 產品套件
事前準備
您已在先決條件中,在 fuchsia-drivers/
目錄中建立 Bazel 工作區。這是含有 WORKSPACE.bazel
檔案的目錄,代表工作區的根目錄。在整個程式碼研究室中,這個根目錄會使用 //
前置字串來參照。舉例來說,路徑 //fuchsia-codelab
代表 Bazel 工作區根目錄中名為 fuchsia-codelab
的目錄。
Bazel 工作區也已預先設定 tools/
目錄中 Fuchsia SDK 提供的開發工具。本程式碼研究室假設您會在 Bazel 工作區中使用 SDK 工具,因此建議您更新 PATH
,以納入 SDK 的 tools/
目錄,或是使用下列指令建立暫時別名:
alias ffx=tools/ffx
alias bazel=tools/bazel