9ceb218f80
Co-authored-by: Cursor <cursoragent@cursor.com>
5.8 KiB
5.8 KiB
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())
启动流程:
main.c执行基础启动;- 调用
v_sys_hardware_init()初始化底层驱动; - 调用
app_os_init()创建应用任务; vTaskStartScheduler()启动调度。
2. app 模块功能说明(含文档跳转)
| 模块 | 主要职责 | 文档 |
|---|---|---|
app/app_init/ |
应用任务表、任务创建、任务锁与测试入口管理 | app_init模块说明 |
app/publicdata/ |
公共数据结构、公共工具函数、参数/时间/编码基础能力 | publicdata模块说明 |
app/mylog/ |
日志输出管理(串口/UDP)、日志等级与模块开关 | mylog模块说明 |
app/wdt_task/ |
看门狗任务、任务健康监测与喂狗节拍 | wdt_task模块说明 |
app/collect_ctrl/ |
采集控制任务模板与周期调度框架 | collect_ctrl模块说明 |
app/fault_cheak/ |
实时故障管理、故障缓存处理、历史故障触发 | fault_cheak模块说明 |
app/flowctrl/ |
充电流程控制状态机、控制接口、流程保护逻辑 | flowctrl模块说明 |
app/bms/ |
BMS 通信处理、协议状态机、超时与异常管理 | bms模块说明 |
app/mdu_comm/ |
MDU 模块通信、报文收发与模块状态管理 | mdu_comm模块说明 |
app/sub_comm/ |
副板通信任务模板与副板协议接入扩展位 | sub_comm模块说明 |
app/meter_calculate/ |
电表采集任务、计量相关数据处理 | meter_calculate模块说明 |
app/plat_comm/ |
平台通信任务模板与对外对接扩展位 | plat_comm模块说明 |
app/ui/ |
UI 通信、页面状态机、界面数据适配 | ui模块说明 |
app/tcp_ser/ |
TCP 服务、协议解析、参数与历史记录交互 | tcp_ser模块说明 |
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 |
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:1TCP/IP:1BmsComm:5DataColl:10FlowCtrl:20FaultCheck:50MduComm:50SubComm:50PlatComm:100MyShell:100(仅当MY_SHELL_EN打开)UiComm:100WatchDog:150MeterColl:200Meterfee:200MyLog:200TcpSer:200(仅当TCP_DEBUG_EN打开)EthLink:1000
6. 编译开关与调试入口
MY_SHELL_EN:shell 命令功能使能(条件编译影响任务表)TCP_DEBUG_EN:TCP 调试服务器使能(条件编译影响TcpSer任务)HTTP_DEBUG_EN:HTTP 调试界面使能(默认关闭)