從 DFv1 遷移至 DFv2 驅動程式庫

這本手冊提供指南、最佳做法、範例和參考資料,協助您將 Fuchsia 來源存放區 (fuchsia.git) 中儲存的現有舊版 DFv1 驅動程式,遷移至新的驅動程式架構 (DFv2)。

事前準備

開始遷移驅動程式庫程式前,請先瞭解與 DFv2 相關的重要概念,並熟悉 DFv1 驅動程式庫的單元測試和整合測試。

DFv1 和 DFv2 的主要差異

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

請注意 DFv1 和 DFv2 的主要差異:

  • DFv1:驅動程式不是元件。Banjo 通訊協定用於驅動程式庫驅動程式庫之間的通訊。驅動程式代管程序介面或 DDK (驅動程式開發套件) 包裝函式可用於管理驅動程式的生命週期。

  • DFv2:驅動程式是元件。所有通訊 (包括駕駛人和非駕駛人之間的通訊) 都會使用 FIDL。驅動程式庫架構會管理驅動程式的生命週期。

預期成果

以下列出完成 DFv2 遷移作業後,預期驅動程式會處於的狀態:

  • 驅動程式可向 DFv2 驅動程式管理器註冊。
  • 驅動程式可以繫結至系統中的裝置節點
  • 系統中的其他 Fuchsia 元件和驅動程式可以使用驅動程式庫的功能。
  • 含有驅動程式庫的產品映像檔可刷入 Fuchsia 裝置。
  • 驅動程式通過所有現有的單元測試和整合測試。

驅動程式遷移教戰手冊

本手冊旨在引導您依序完成移轉工作,這些工作分為下列兩個階段:

  1. 從 DFv1 遷移至 DFv2:將驅動程式庫的舊版 DDK 介面和其他服務更新至 DFv2。
  2. 從 Banjo 遷移至 FIDL:將驅動程式庫使用的 Banjo 通訊協定更新為 FIDL,完成遷移作業。

不過請注意,視驅動程式庫的功能或設定而定,您可能需要完成本劇本未涵蓋的其他工作。

擴充功能

我們新增了下列指南,以支援先前劇本中缺少的任務: