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 Rust
- embedded-hal driver
- Async embedded
- Display driver
目录
技术栈
运行与交付
- CI 工作流
- build.yml
- release.yml
- 能力标记
- cargo_toml
- github_actions
配置与质量
- 配置文件
- .gitignore
- Cargo.toml
- lefthook.yml
其他信息
- Cargo
- 开发依赖
- embedded-hal-mock
- Deps main
- defmt
- embedded-graphics-core
- embedded-hal
- embedded-hal-async
- maybe-async-cfg
{
"cargo": {
"deps_dev": [
"embedded-hal-mock"
],
"deps_main": [
"defmt",
"embedded-graphics-core",
"embedded-hal",
"embedded-hal-async",
"maybe-async-cfg"
]
},
"ci_workflows": [
"build.yml",
"release.yml"
],
"configs_root": [
".gitignore",
"Cargo.toml",
"lefthook.yml"
],
"markers_present": [
"cargo_toml",
"github_actions"
]
}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 Rust, embedded-hal driver, Async embedded, Display driver
- Why / evidence: 这些 tags 来自 checked-out repo 和 catalog record。主要证据包括
README.md、Cargo.toml、src/、examples/、docs/、.github/workflows/build.yml、.github/workflows/release.yml。Topic token 的大小写以对应技术/工作流的官方写法为准;slug 只作为稳定 ID,不直接充当项目标题。
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.mdCargo.tomlsrc/examples/docs/.github/workflows/build.yml.github/workflows/release.yml
相关内容
Async embedded
主题Async embedded 表示嵌入式 Rust 代码把 async 当成正式 API surface 或正式 runtime contract 来维护,而不是只在某个样例里顺手用了异步。
Device mono-repo
主题Device mono-repo 表示一个仓库同时承载硬件资料、固件、Web/desktop UI、docs/specs、测试工具或发布流程。它强调边界协调:硬件、firmware、UI 和文档互相影响,不应把仓库当作单一应用。 这个 Topic 的核心是设备级知识不能被某一个技术栈吞掉。
Display driver
主题Display driver 表示项目围绕显示控制器驱动建立了稳定的可复用模式,通常是面向 LCD/OLED/controller 的驱动 crate,或在产品固件中把显示驱动视为独立维护边界。这里的重点不是“有屏幕”,而是显示控制器交互本身已经成为长期维护契约。 这个 Topic 关注显示控制器层,而不是更高层的 UI/graphics 语义。
embedded-hal driver
主题embedded-hal driver 表示一个 crate 的主 API 明确建立在 embedded-hal trait 生态之上,目标是被其他 firmware 或 board-support 代码组合进系统,而不是自己成为整机应用。这里的核心不是器件名,而是“驱动 crate 的复用边界”。 这个 Topic 关注的是 crate API 形状、trait 依赖、feature flags、测试方式和下游组合方式。
Embedded Rust
主题Embedded Rust 表示 Rust 代码运行在 MCU、driver、firmware 或硬件 bring-up 环境中,通常涉及 no_std、Embassy、esp-hal、STM32/ESP32、probe-rs、espflash 或 embedded-hal。它不是所有 Rust 项目的泛化标签。
Rust web service
主题Rust web service 表示 Rust binary 承担长期运行的服务职责:提供 HTTP API、proxy、SSE、docs/data service、admin backend 或 ops daemon,并对外暴露稳定的网络、存储和部署边界。这里的关键词不是“Rust”,而是“服务进程”。 这个 Topic 不只是“语言是 Rust”。