# CLAUDE.md 本文档为 Claude Code (claude.ai/code) 提供本代码仓库的工作指导。 ## 项目概述 本项目是面向配电自动化的 DTU(数据传输单元)嵌入式软件,目标平台为伏羲 T536(ARM Cortex-A55, aarch64)。使用 Xenomai 实时框架,UI 采用 LVGL。 ## 构建系统 ### 构建命令 项目使用基于 Makefile 的自定义构建系统,配合 shell 脚本: ```bash # 进入构建脚本目录 cd dtu/dtu_main_t536/sh/t536 # 构建广东 2020 标准版本(默认配置) ./mybuild_for_gw_public_t536 NanWang GD_AREA_ECZD_2020 DCPU_FUXI DMACHINE_NULL # 标准 DTU 5.0 版本的替代构建脚本 ./mybuild_for_std_dtu5.0 ``` 构建参数: - `$1`:输出目录名称(例如:"NanWang") - `$2`:区域宏定义(例如:`GD_AREA_ECZD_2020`) - `$3`:CPU 类型(例如:`DCPU_FUXI`) - `$4`:机器类型(例如:`DMACHINE_NULL`) ### 交叉编译 - 编译器:`aarch64-none-linux-gnu-gcc` - 目标平台:ARM Cortex-A55 - 输出文件:`dtu_t536` 可执行文件(作为内核模块链接) ### 构建输出 构建生成以下文件: - `dtu/dtu_main_t536/dtu_t536`:主可执行文件 - `dtu/dtu_main_t536/ko//`:包含 CRC 校验二进制文件的输出目录 ## 项目结构 ### 主要目录 - `dtu/dtu_main_t536/app/`:主应用程序源代码 - 核心模块:保护逻辑、通信协议、UI 等 - `main.c`:应用程序入口点 - `head.h`:包含所有模块头文件的主头文件 - `app_public/`:共享/公共代码库 - `fuxi_public/`:平台抽象层 - `rt_lite/`:实时操作系统抽象 - `fuxi_bsp/`:板级支持包(ADC、GPIO、UART 等) - `bsp_share/`:共享 BSP 工具函数 - `gps/`:GPS 模块 - `sys_api/`:系统 API - `bluetooth/`:蓝牙支持 - `wavelib/`:波形记录库 - `xdljd/`:小电流接地逻辑 - `xenomai/`:Xenomai 实时框架头文件和库 - `build/`:CMake 构建目录(用于生成 compile_commands.json) ### 关键架构组件 1. **实时层**:基于 Xenomai,通过 `rt_lite` 抽象提供实时套接字、文件、FIFO 2. **BSP 层**:硬件抽象,包括 ADC (AD7616)、GPIO、UART、CAN、I2C、RTC 3. **协议栈**:IEC101、IEC104、Modbus、IEC61850/GOOSE 4. **保护逻辑**:开关保护、重合闸、FA(馈线自动化) 5. **UI 层**:基于 LVGL 的本地显示界面 ### 配置系统 配置定义在 `dtu/dtu_main_t536/app/defineSys.h`: - 区域特定宏(例如:广东 2020 标准使用 `GD_AREA_ECZD_2020`) - 保护功能、通信协议的特性开关 - 硬件特定配置 关键配置宏: - `CPU_FUXI`:目标 CPU 类型 - `GD_AREA_*`:区域/客户特定需求 - `SWITCH_NUM_MAX`:最大支持开关数 - `CFG_LINK_104_NUM`:IEC104 链路数量 - `CFG_LINK_101_NUM`:IEC101 链路数量 ## 开发指南 ### 文件组织 - 应用程序逻辑:`dtu/dtu_main_t536/app/*.c` - UI 代码:`dtu/dtu_main_t536/app/ui/` - BSP 代码:`app_public/fuxi_public/fuxi_bsp/source/` - 公共头文件:`app_public/fuxi_public/fuxi_bsp/include/` ### 常见任务 **添加新源文件:** 1. 将 `.c` 文件添加到相应目录 2. 更新 `dtu/dtu_main_t536/sh/t536/Makefile` 中的 OBJS 列表 3. 如需要,添加对应的头文件 **修改构建配置:** - 编辑 `dtu/dtu_main_t536/app/defineSys.h` 设置特性开关 - 编辑 `dtu/dtu_main_t536/sh/t536/` 中的构建脚本设置编译选项 **构建调试:** ```bash # 启用详细构建输出 make v=1 # 生成 compile_commands.json 用于 IDE 支持 # (使用 bear:bear -- make -j6) ``` ### 重要文件路径 - 主入口:`dtu/dtu_main_t536/app/main.c` - 应用配置:`dtu/dtu_main_t536/app/Appconfig.c` - 系统定义:`dtu/dtu_main_t536/app/defineSys.h` - BSP 配置:`app_public/fuxi_public/fuxi_bsp/include/bspconfig.h` - 构建脚本:`dtu/dtu_main_t536/sh/t536/mybuild_for_gw_public_t536` - Makefile:`dtu/dtu_main_t536/sh/t536/Makefile` ### 硬件环境 - 平台:伏羲 T536(ARM Cortex-A55) - ADC:AD7616(16 通道) - IO 扩展:CH423S - 温湿度传感器:AHT20 - 实时操作系统:Xenomai(Cobalt 内核)