從 DFv1 遷移至 DFv2 驅動程式庫

本教戰手冊提供指南、最佳做法、範例和參考資料 協助您遷移現有的 DFv1 驅動程式 儲存在 Fuchsia 來源樹狀結構 (fuchsia.git) 中,並儲存在 Fuchsia 的 新的驅動程式架構 (DFv2)。

事前準備

DFv2 可讓 Fuchsia 驅動程式成為全方位的使用者空間 元件。如同其他 Fuchsia 元件,DFv2 驅動程式庫 向其他元件公開及接收 FIDL 功能 和驅動程式

請注意下列 DFv1 和 DFv2 之間的主要差異:

  • DFv1:驅動程式並非元件。Banjo 通訊協定是 驅動程式庫對驅動程式庫通訊的機制驅動程式主機介面 DDK (驅動程式開發套件) 包裝函式用於管理生命週期 駕駛人。

  • DFv2:驅動程式是元件。FIDL 用於所有通訊 包括駕駛人和非駕駛人之間的通訊駕駛人 管理驅動程式的生命週期(如需更多資訊, 請參閱 DFv1 與 DFv2 的比較)。

以下是駕駛完成的預期狀況 遷移至 DFv2:

  • 你可以透過驅動程式管理員註冊驅動程式。
  • 驅動程式可繫結至系統中的裝置節點
  • Fuchsia 元件和驅動程式可使用驅動程式庫功能。
  • Fuchsia 裝置可使用含有驅動程式庫的產品圖片進行刷新。
  • 系統會傳遞驅動程式庫的所有單元測試和整合測試。

開始遷移驅動程式庫程式前,請先熟悉 驅動程式庫的單元測試和整合測試。

驅動程式庫遷移的兩個階段

如準備好將 DFv1 驅動程式庫遷移至 DFv2,即可參考本教戰手冊 協助您以線性方式處理遷移工作不過請注意 視駕駛人的功能或設定而定,你可能需要 處理本教戰手冊中未提及的其他任務。

驅動程式從 DFv1 遷移至 DFv2 的程序可分為兩個階段:

  1. 從 DFv1 遷移至 DFv2
  2. 從 Banjo 遷移至 FIDL

擴充功能

先前新增的指南支援先前 違反上述遷移手冊: