從 DFv1 遷移至 DFv2 驅動程式庫

本教戰手冊提供指南、最佳做法、範例和參考資料,協助您將儲存在 Fuchsia 原始碼樹狀結構 (fuchsia.git) 中的現有 DFv1 驅動程式遷移至 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

擴充功能

針對之前在上述遷移教戰手冊中認定缺少的工作,我們新增了下列指南來支援這些工作: