33 lines
1.4 KiB
Markdown
33 lines
1.4 KiB
Markdown
# App/app/ — 应用入口与全局定义
|
||
|
||
> 应用层的**入口**与**全局定义**:初始化编排、功能编译开关、跨模块的就绪事件定义。
|
||
|
||
## 文件一览
|
||
|
||
| 文件 | 作用 |
|
||
|---|---|
|
||
| `app_main.c/h` | **应用初始化入口 `app_main_init`**:时间子系统优先 → RS485 → NAND → ADC → 诊断(在 `osKernelStart` 之前执行) |
|
||
| `app_cfg.h` | **功能模块编译开关**(裁剪测试套件/模块用) |
|
||
| `sys_events.h` | **系统就绪事件定义**(CMSIS-RTOS v2 Event Flags:`SYS_EVT_NET_READY` / `SYS_EVT_STORAGE_READY` / `SYS_EVT_FTP_READY` / `SYS_EVT_TIMESYNC_READY` 及命令位) |
|
||
|
||
## 初始化顺序(`app_main_init`)
|
||
|
||
```
|
||
sd2506_init // 时间子系统优先,使后续日志带时间戳
|
||
sys_clock_init // 墙钟(RTC 故障降级并返回 -1 → 触发自检)
|
||
rs485_init
|
||
gd5f2gq5ue_init
|
||
tpafe5160_init
|
||
SD2506 诊断 // ID / 时间 / 温度 / 电池
|
||
tpafe5160_start_conv_irq // 首次 ADC 转换
|
||
```
|
||
|
||
> ⚠️ 以上全部在内核启动前执行 → **禁止任何 FreeRTOS/CMSIS-RTOS API 调用**
|
||
> (`osMessageQueueNew` 等会杀死启动)。内核前日志走无锁静态缓冲(见 `../log/`)。
|
||
|
||
## 相关文档
|
||
|
||
- 架构全景:`docs/架构设计/项目架构总览.md`
|
||
- 启动顺序与就绪屏障:`docs/架构设计/项目启动顺序管理.md`
|
||
- 墙钟:`docs/子系统设计/系统墙钟时间维护说明.md`
|