Ivan's Blog
项目实践

GC9D01 Rust Driver

GC9D01 Rust Driver 是 no_std Rust LCD display controller driver,面向 GC9D01 面板并提供 embedded-graphics 支持。README.md 和 Cargo.toml 都把 crate 名确认为 gc9d01,仓库 slug gc9d01-rs 只是 GitHub 命名。

  • embedded-hal driver

目录

技术栈

运行与交付

CI 工作流
  • build.yml
  • release.yml
能力标记
  • cargo_toml
  • github_actions
JSON

Purpose

GC9D01 Rust Driver 是 no_std Rust LCD display controller driver,面向 GC9D01 面板并提供 embedded-graphics 支持。README.md 和 Cargo.toml 都把 crate 名确认为 gc9d01,仓库 slug gc9d01-rs 只是 GitHub 命名。

Taxonomy

  • Tags: embedded-hal driver

Repository map

  • src/ 是 driver source;examples/ 提供使用样例。
  • Cargo.toml 声明 embedded-hal、embedded-hal-async、embedded-graphics-core 等依赖,并把 docs/target/.github 排除出发布包。
  • docs/ 保存控制器资料或实现 notes。
  • .github/workflows/build.yml 与 release.yml 提供构建/发布路径。

Runtime and delivery

这是 library crate,不是 app/service。验证重点是 cargo check/test/build、examples、feature combinations 和 docs.rs/crates.io 元数据。async/sync API 共存时,需要确保 optional feature 不破坏 no_std。

Architecture notes

驱动抽象把 SPI/接口能力交给 embedded-hal,自己负责初始化序列、orientation、RGB565/frame buffer/DrawTarget 语义。这个 Topic 应同时命中 embedded-hal driver、async embedded 和 display driver,否则后续 Agent 可能只看到 Rust crate 而忽略硬件接口约束。

Workflow and quality gates

CI 目前以 build/release workflow 为主。由于 crate 面向发布,Cargo.toml 的 repository、documentation、readme、rust-version 和 license 都属于交付面。

Reusable decisions

  • driver snapshot 使用硬件/driver 名,而不是仓库 slug。
  • async + sync 双 API 是可复用设计,但要保持 feature hygiene。
  • embedded-graphics support 是 display driver 的关键价值。

Risks and open questions

  • 官方初始化序列或面板变体差异可能影响兼容性。
  • crate version 当前较早,发布前需要 API/feature 稳定性检查。
  • 没有硬件 screenshot/logic evidence 时,不应过度承诺所有面板都通过。

Evidence index

  • README.md
  • Cargo.toml
  • src/
  • examples/
  • docs/
  • .github/workflows/build.yml
  • .github/workflows/release.yml