diff --git a/Documents/drivers/README.md b/Documents/drivers/README.md index d47fab9..c3c73a8 100644 --- a/Documents/drivers/README.md +++ b/Documents/drivers/README.md @@ -24,8 +24,6 @@ 面向底盘与部分传感器管理代码路径使用的轻量 PID 工具层。 - [传感器(sensor)](sensor.md) 本仓库当前提供的 Zephyr 传感器驱动。 -- [图形(graph)](graph.md) - 当前位于常规驱动注册链路之外、处于早期阶段的 INSLink/RTT 图形支持代码。 ## 通用约定 @@ -44,7 +42,6 @@ - `wheel` 实现依赖 `motor` API。 - `sbus` 一般由应用或示例直接消费。 - `sensor` 驱动实现标准 Zephyr sensor API,并被 `lib/ares/` 与 `samples/` 中的 IMU 与感知代码使用。 -- `graph` 当前与常规 Zephyr 驱动体系分离,在具备绑定、构建胶水和公共 API 前应视为实验性代码。 ## 维护说明 diff --git a/Documents/drivers/graph.md b/Documents/drivers/graph.md deleted file mode 100644 index 4f179c3..0000000 --- a/Documents/drivers/graph.md +++ /dev/null @@ -1,114 +0,0 @@ -# 图形 - -## 概览 - -`drivers/graph/` 当前保存的是早期的 INSLink/RTT 图形支持代码,而非完整的 Zephyr 驱动子系统。该代码已存在于仓库中,但未按照与 `chassis`、`wheel`、`SBUS`、`PID`、`sensor` 相同方式接入常规 `drivers/` 构建链路与公共 API 布局。 - -相关文件: - -- `drivers/graph/graph.h` -- `drivers/graph/inslink.h` -- `drivers/graph/inslink.c` - -## 当前代码结构 - -### `graph.h` - -该头文件定义了当前可见的少量公共类型: - -- `enum VarType`,包含 `STRING`、`INTEGER`、`FLOAT`、`DOUBLE`、`RAW` -- `feedbackVar`,包含类型、大小和数据指针 -- `DT_GRAPH_DEFINE(node_id)` 宏 - -本子系统在 `include/zephyr/drivers/` 下没有公开的 Zephyr 头文件。 - -### `inslink.h` - -本文件声明了 RTT 图形相关的私有结构: - -- `struct rtt_graph_data` -- `struct rtt_graph_cfg` - -并前向声明: - -- `rtt_graph_init()` -- `rtt_graph_add()` -- `rtt_graph_stop()` - -同时定义了一组实例宏,基于: - -- `DT_DRV_COMPAT ares_rttgraph` - -配置结构期望来自 devicetree 的: - -- `name` -- `phy` -- `time_gap_ms` - -### `inslink.c` - -当前源码: - -- 引入 `graph.h` -- 注册日志模块 `insLink` -- 展开 `DT_INST_FOREACH_STATUS_OKAY(RTT_GRAPH_INST)` - -但在当前仓内,`rtt_graph_init()`、`rtt_graph_add()`、`rtt_graph_stop()` 的函数体均未提供。 - -## 设备模型 - -预期形态似乎是按 `ares_rttgraph` 实例创建 Zephyr 设备,包含: - -- `struct rtt_graph_data` 最多 16 个 `feedbackVar` 注册 -- 在 `struct rtt_graph_cfg.dev` 中绑定的物理设备 -- `time_gap_ms` 的周期采样间隔 - -该设备模型当前仅部分落地。运行时方法已声明,但在可见源码中尚未实现。 - -## Devicetree 与公开 API 状态 - -当前未在 `dts/bindings/` 下提供 `ares_rttgraph` 的匹配绑定。 - -`include/zephyr/drivers/` 下也没有对应公开 API 头文件。 - -因此: - -- 应用无法获得稳定的文档化接口 -- `ares_rttgraph` 节点的 devicetree 校验缺失 -- `inslink.h` 引用的属性名缺少模式约束 - -## 构建与配置状态 - -`drivers/CMakeLists.txt` 未加入 `drivers/graph/`。 - -以下文件中也未出现 graph 特定条目: - -- `drivers/Kconfig` -- `drivers/CMakeLists.txt` - -源码还引用了如下配置项: - -- `CONFIG_INS_LINK_LOG_LEVEL` -- `CONFIG_RTT_GRAPH_INIT_PRIO` - -这些符号在本文件范围内未被定义。 - -因此,在实践中 `drivers/graph/` 应视为仓内持续开发中的过渡代码,不应按支持级驱动子系统对待。 - -## 维护指引 - -在该子系统完成前,维护应保持保守: - -- 避免文档化或依赖未导出的应用侧 API -- 不要新增默认假设这些实例宏已完整可用的用户代码 -- 若继续扩展,需先补齐绑定、Kconfig、构建胶水与公共头文件,再把它当作常规驱动使用 - -## 验证 - -当前仓内无样例或测试直接覆盖 `drivers/graph/`。 - -后续启用工作至少应补齐: - -- `dts/bindings/` 下的绑定 -- `drivers/CMakeLists.txt` 下的构建入口 -- 至少一个展示实例创建与变量注册的示例 diff --git a/Documents/modules.md b/Documents/modules.md index f3eb14c..069528a 100644 --- a/Documents/modules.md +++ b/Documents/modules.md @@ -128,15 +128,6 @@ VCAN 在主机板上暴露标准 Zephyr CAN 设备,实际通过 SPI 访问远 传感器模块提供 IMU、光流或运动传感器驱动。驱动应尽量遵循 Zephyr 传感器 API,项目特定 标定数据放在对应 binding 中。 -### 图形(Graph) - -路径: - -- `drivers/graph/` - -Graph 当前承载 INSLink 相关代码。该目录并非通用图形库,维护时应按通信或姿态子系统分类, -不应在此继续扩展无关功能。 - ## ARES 库 ### 接口层(Interface) diff --git a/drivers/graph/graph.h b/drivers/graph/graph.h deleted file mode 100644 index aa8e213..0000000 --- a/drivers/graph/graph.h +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -typedef enum { - STRING, - INTEGER, - FLOAT, - DOUBLE, - RAW -} VarType; - -typedef struct { - VarType type; - int16_t size; - void *ptr; -} feedbackVar; - -#define DT_GRAPH_DEFINE(node_id) \ - DEVICE_DT_DEFINE(node_id, init_fn, pm, data, config, level, prio, api, __VA_ARGS__) diff --git a/drivers/graph/inslink.c b/drivers/graph/inslink.c deleted file mode 100644 index 36091a6..0000000 --- a/drivers/graph/inslink.c +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (c) 2024 ttwards <12411711@mail.sustech.edu.cn> - * - * SPDX-License-Identifier: Apache-2.0 - */ -#include -#include -#include "graph.h" -#include -#include -#include -#include -#include - -#define DT_DRV_COMPAT ares_rttgraph - -LOG_MODULE_REGISTER(insLink, CONFIG_INS_LINK_LOG_LEVEL); - -DT_INST_FOREACH_STATUS_OKAY(RTT_GRAPH_INST) diff --git a/drivers/graph/inslink.h b/drivers/graph/inslink.h deleted file mode 100644 index fa0befd..0000000 --- a/drivers/graph/inslink.h +++ /dev/null @@ -1,44 +0,0 @@ -#include "graph.h" -#include -#include -#include -#define DT_DRV_COMPAT ares_rttgraph - -struct rtt_graph_data { - feedbackVar vars[16]; - int16_t num; -}; - -struct rtt_graph_cfg { - const char name[12]; - const struct device *dev; - int time_gap_ms; -}; - -static void rtt_graph_init(const struct device *dev); -static int rtt_graph_add(const struct device *dev, feedbackVar var); -static void rtt_graph_stop(const struct device *dev); - -#define DT_RTT_GRAPH_DEFINE_INST(inst, ...) DT_GRAPH_DEFINE(DT_DRV_INST(inst), __VA_ARGS__) - -#define RTT_GRAPH_DEFINE_INST(node_id) \ - DT_RTT_GRAPH_DEFINE_INST(inst, rtt_graph_init, NULL, &rtt_graph_data_##inst, \ - &rtt_graph_cfg_##inst, POST_KERNEL, CONFIG_RTT_GRAPH_INIT_PRIO, \ - &rtt_graph_api_funcs); - -#define RTT_GRAPH_DATA_INST(inst) \ - struct rtt_graph_data rtt_graph_data_##inst = { \ - .num = 0, \ - }; - -#define RTT_GRAPH_CONFIG_INST(inst) \ - struct rtt_graph_cfg rtt_graph_cfg_##inst = { \ - .name = DT_PROP(DT_DRV_INST(inst), name), \ - .dev = DEVICE_DT_GET(DT_PROP(DT_DRV_INST(inst), phy)), \ - .time_gap_ms = DT_PROP(DT_DRV_INST(inst), time_gap_ms), \ - }; - -#define RTT_GRAPH_INST(inst) \ - RTT_GRAPH_CONFIG_INST(inst) \ - RTT_GRAPH_DATA_INST(inst) \ - RTT_GRAPH_DEFINE_INST(inst)