# CCU621_M 应用软件主说明 > 本文档为 `CCU621_M` 项目主索引,覆盖当前 `app` 与 `BSP` 的主要模块。 > 重点提供:启动入口、模块职责、文档导航(README <-> 各模块说明)。 ## 1. 启动入口与分层关系 - 程序入口:`app/main.c` - 硬件初始化入口:`BSP/sys_drv_init.c`(`v_sys_hardware_init()`) - 应用任务初始化入口:`app/app_init/app_init.c`(`app_os_init()`) 启动流程: 1. `main.c` 执行基础启动; 2. 调用 `v_sys_hardware_init()` 初始化底层驱动; 3. 调用 `app_os_init()` 创建应用任务; 4. `vTaskStartScheduler()` 启动调度。 --- ## 2. app 模块功能说明(含文档跳转) | 模块 | 主要职责 | 文档 | |---|---|---| | `app/app_init/` | 应用任务表、任务创建、任务锁与测试入口管理 | [app_init模块说明](./app/app_init/app_init模块说明.md) | | `app/publicdata/` | 公共数据结构、公共工具函数、参数/时间/编码基础能力 | [publicdata模块说明](./app/publicdata/publicdata模块说明.md) | | `app/mylog/` | 日志输出管理(串口/UDP)、日志等级与模块开关 | [mylog模块说明](./app/mylog/mylog模块说明.md) | | `app/wdt_task/` | 看门狗任务、任务健康监测与喂狗节拍 | [wdt_task模块说明](./app/wdt_task/wdt_task模块说明.md) | | `app/collect_ctrl/` | 采集控制任务模板与周期调度框架 | [collect_ctrl模块说明](./app/collect_ctrl/collect_ctrl模块说明.md) | | `app/fault_cheak/` | 实时故障管理、故障缓存处理、历史故障触发 | [fault_cheak模块说明](./app/fault_cheak/fault_cheak模块说明.md) | | `app/flowctrl/` | 充电流程控制状态机、控制接口、流程保护逻辑 | [flowctrl模块说明](./app/flowctrl/flowctrl模块说明.md) | | `app/bms/` | BMS 通信处理、协议状态机、超时与异常管理 | [bms模块说明](./app/bms/bms模块说明.md) | | `app/mdu_comm/` | MDU 模块通信、报文收发与模块状态管理 | [mdu_comm模块说明](./app/mdu_comm/mdu_comm模块说明.md) | | `app/sub_comm/` | 副板通信任务模板与副板协议接入扩展位 | [sub_comm模块说明](./app/sub_comm/sub_comm模块说明.md) | | `app/meter_calculate/` | 电表采集任务、计量相关数据处理 | [meter_calculate模块说明](./app/meter_calculate/meter_calculate模块说明.md) | | `app/plat_comm/` | 平台通信任务模板与对外对接扩展位 | [plat_comm模块说明](./app/plat_comm/plat_comm模块说明.md) | | `app/ui/` | UI 通信、页面状态机、界面数据适配 | [ui模块说明](./app/ui/ui模块说明.md) | | `app/tcp_ser/` | TCP 服务、协议解析、参数与历史记录交互 | [tcp_ser模块说明](./app/tcp_ser/tcp_ser模块说明.md) | --- ## 3. BSP 模块功能说明 | 模块 | 主要职责 | 关键文件 | |---|---|---| | `BSP/sys_drv_init.*` | NVIC/MPU/Cache 与底层驱动初始化编排 | `sys_drv_init.c/h` | | `BSP/freertos/` | RTOS 配置与系统任务辅助接口 | `FreeRTOSConfig.h`, `app_freertos.c/h` | | `BSP/net_lwip/` | 以太网和 lwIP 网络栈配置 | `lwipopts.h`, `netconf.c/h`, `net_init.c/h` | | `BSP/com/` | 串口驱动与统一收发接口 | `usart.c/h` | | `BSP/can/` | 三路 CAN 统一驱动接口 | `can.c/h` | | `BSP/eeprom/` | EEPROM 驱动与读写封装 | `i2c1.c/h`, `fm24cl16.c/h` | | `BSP/externalflash/` | SPI 外部 Flash 驱动与统一读写接口 | `exflash_spi4_gd25qxx.c/h`, `flash_external_data.c/h` | | `BSP/flash_file_mgr/` | 历史故障持久化管理 | `fault_flash_impl.c/h` | | `BSP/rtc/` | RTC 读写、时间换算与同步 | `rtc.c/h` | | `BSP/pin_config_table.md` | BSP 引脚总表(DO/DI/UART/CAN/I2C/SPI/NAND/ENET) | [pin_config_table](./BSP/pin_config_table.md) | --- ## 4. 当前项目要点 - `app` 任务模块框架已齐备:流程、BMS、MDU、平台、UI、TCP、计量、故障、日志、看门狗; - CAN 三路收发已打通,当前驱动主路径为 mailbox 模式(TX:MB0, RX:MB1); - 文档已统一到“模块内说明 + README 索引”的双向导航方式。 --- ## 5. 运行时任务调度总览(FreeRTOS) 主调度入口为 `app/main.c`:`v_sys_hardware_init()` 后调用 `app_os_init()` 创建任务并进入 `vTaskStartScheduler()`。 各任务周期来自 `app/app_init/app_init.c` 的任务表(单位:ms,且为 FreeRTOS 周期调度睡眠时间): - `EthIf`:1 - `TCP/IP`:1 - `BmsComm`:5 - `DataColl`:10 - `FlowCtrl`:20 - `FaultCheck`:50 - `MduComm`:50 - `SubComm`:50 - `PlatComm`:100 - `MyShell`:100(仅当 `MY_SHELL_EN` 打开) - `UiComm`:100 - `WatchDog`:150 - `MeterColl`:200 - `Meterfee`:200 - `MyLog`:200 - `TcpSer`:200(仅当 `TCP_DEBUG_EN` 打开) - `EthLink`:1000 ## 6. 编译开关与调试入口 - `MY_SHELL_EN`:shell 命令功能使能(条件编译影响任务表) - `TCP_DEBUG_EN`:TCP 调试服务器使能(条件编译影响 `TcpSer` 任务) - `HTTP_DEBUG_EN`:HTTP 调试界面使能(默认关闭) --- ## 7. 文档互链(app) - [app_init模块说明](./app/app_init/app_init模块说明.md) - [publicdata模块说明](./app/publicdata/publicdata模块说明.md) - [mylog模块说明](./app/mylog/mylog模块说明.md) - [wdt_task模块说明](./app/wdt_task/wdt_task模块说明.md) - [collect_ctrl模块说明](./app/collect_ctrl/collect_ctrl模块说明.md) - [fault_cheak模块说明](./app/fault_cheak/fault_cheak模块说明.md) - [flowctrl模块说明](./app/flowctrl/flowctrl模块说明.md) - [bms模块说明](./app/bms/bms模块说明.md) - [mdu_comm模块说明](./app/mdu_comm/mdu_comm模块说明.md) - [sub_comm模块说明](./app/sub_comm/sub_comm模块说明.md) - [meter_calculate模块说明](./app/meter_calculate/meter_calculate模块说明.md) - [plat_comm模块说明](./app/plat_comm/plat_comm模块说明.md) - [ui模块说明](./app/ui/ui模块说明.md) - [tcp_ser模块说明](./app/tcp_ser/tcp_ser模块说明.md)