CLAUDE.md 4.1 KB

CLAUDE.md

本文档为 Claude Code (claude.ai/code) 提供本代码仓库的工作指导。

项目概述

本项目是面向配电自动化的 DTU(数据传输单元)嵌入式软件,目标平台为伏羲 T536(ARM Cortex-A55, aarch64)。使用 Xenomai 实时框架,UI 采用 LVGL。

构建系统

构建命令

项目使用基于 Makefile 的自定义构建系统,配合 shell 脚本:

# 进入构建脚本目录
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/<app_dir>/:包含 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/ 中的构建脚本设置编译选项

构建调试:

# 启用详细构建输出
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 内核)