驱动程序示例

本页面包含一系列用于演示 Fuchsia 驱动程序概念的示例。

基本示例

以下示例展示了常见的驾驶员概念

  • 框架驱动程序 - 框架驱动程序示例是使用 DFv2 编写的最小驱动程序。

  • 模板驱动程序 - 模板驱动程序是使用 DFv2 编写的极简驱动程序,通过 SDK 规则构建(可在 Fuchsia 源代码检出和 Fuchsia SDK 环境中使用)。

  • 简单驱动程序 - 简单驱动程序示例展示了如何使用以下常见模式编写 DFv1 驱动程序DFv2 驱动程序

    • 添加日志
    • 添加子节点
    • 实现停止函数
    • 设置兼容型设备服务器
  • 元数据 - 元数据示例演示了如何定义元数据类型并将元数据从驱动程序传递给其子项。

传输示例

以下示例展示了驱动程序之间的通信:

  • Banjo - 这些示例展示了提供 Banjo 传输的父级驱动程序和用于连接和查询数据的子驱动程序。

  • Zircon 传输 - 这些示例展示了一个通过 Zircon 传输提供 FIDL 协议的父驱动程序,以及一个从它连接和查询数据的子驱动程序。

  • 驱动程序传输 - 这些示例展示了通过驱动程序传输提供 FIDL 协议的父驱动程序,以及从其连接和查询数据的子驱动程序。

绑定示例

以下示例演示了如何为驱动程序编写和使用绑定库:

  • 绑定库 - 此示例演示了如何编写绑定库。

  • 绑定库 codegen - 此示例演示了如何使用通过绑定库生成的 C++ 和 Rust 常量。

  • FIDL 绑定库 codegen - 此示例演示了如何编写绑定库。

测试示例

以下示例展示了如何为驱动程序编写单元测试和集成测试。

单元测试

单元测试示例:

  • 简单驱动程序 - 针对简单驱动程序示例的准系统单元测试
  • Banjo 传输 - 用于验证子驱动程序是否可以从虚构 Banjo 服务器进行查询的单元测试
  • Zircon 传输 - 用于验证子驱动程序是否可以从模拟 FIDL Zircon 服务器进行查询的单元测试
  • 驱动程序传输 - 用于验证子驱动程序是否可以从模拟 FIDL 驱动程序服务器进行查询的单元测试

集成测试

驱动程序测试领域示例演示了如何为驱动程序编写封闭和非封闭集成测试。