删除FlashDB
This commit is contained in:
28
AGENTS.md
28
AGENTS.md
@@ -4,7 +4,7 @@
|
||||
|
||||
## 项目概述
|
||||
|
||||
STM32F407ZGTx (Cortex-M4 FPU) 基础固件项目,集成 CH395F 以太网控制器 SPI 驱动、GD5F2GQ5UE SPI NAND Flash 存储(含 FlashDB KVDB/TSDB 数据库)和 TPAFE5160 16位8通道同步采样 ADC 并行接口驱动。
|
||||
STM32F407ZGTx (Cortex-M4 FPU) 基础固件项目,集成 CH395F 以太网控制器 SPI 驱动、GD5F2GQ5UE SPI NAND Flash 存储(dhara FTL + FatFS 文件系统)和 TPAFE5160 16位8通道同步采样 ADC 并行接口驱动。
|
||||
|
||||
## 目录结构
|
||||
|
||||
@@ -24,17 +24,13 @@ STM32F4-Base/
|
||||
│ │ │ └── net_select.c # select/poll 实现
|
||||
│ │ ├── GD5F2GQ5UE/ # GD5F2GQ5UE NAND Flash 驱动(手写)
|
||||
│ │ │ ├── gd5f2gq5ue.h/c # 底层 SPI 驱动
|
||||
│ │ │ ├── fal_flash_gd5f2gq5ue.c # FAL 设备适配层
|
||||
│ │ │ ├── fal_cfg.h # FAL 设备表 + 分区表
|
||||
│ │ │ └── fdb_cfg.h # FlashDB 功能配置
|
||||
│ │ │ └── nand_ftl.h/c # dhara FTL + FatFS diskio 适配层
|
||||
│ │ └── TPAFE5160/ # TPAFE5160 ADC 并行接口驱动(手写)
|
||||
│ ├── STM32F4xx_HAL_Driver/ # ST HAL 库(CubeMX 生成)
|
||||
│ └── CMSIS/ # ARM CMSIS(CubeMX 生成)
|
||||
├── Lib/
|
||||
│ └── FlashDB/ # FlashDB 数据库库(v2.2.99)
|
||||
│ ├── src/ # FlashDB 核心源码
|
||||
│ ├── inc/ # FlashDB 头文件
|
||||
│ └── port/fal/ # FAL 抽象层
|
||||
│ ├── dhara/ # dhara FTL (Flash Translation Layer)
|
||||
│ └── FatFs/ # FatFs 文件系统 (v0.15)
|
||||
├── MDK-ARM/ # Keil MDK 工程文件
|
||||
├── docs/ # 参考文档
|
||||
└── STM32F407-Demo.ioc # STM32CubeMX 项目源文件
|
||||
@@ -49,7 +45,7 @@ STM32F4-Base/
|
||||
| `Drivers/BSP/NET/net_socket.c/h` | BSD Socket API 网络抽象层 |
|
||||
| `Drivers/BSP/NET/net_select.c/h` | select/poll I/O 多路复用 |
|
||||
| `Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.c/h` | GD5F2GQ5UE NAND Flash SPI 驱动 |
|
||||
| `Drivers/BSP/GD5F2GQ5UE/fal_flash_gd5f2gq5ue.c` | FAL 设备适配层 |
|
||||
| `Drivers/BSP/GD5F2GQ5UE/nand_ftl.c` | dhara FTL + FatFS diskio 适配层 |
|
||||
| `Drivers/BSP/TPAFE5160/tpafe5160.c/h` | TPAFE5160 ADC 并行接口驱动 |
|
||||
| `Src/freertos.c` | FreeRTOS task 创建和任务函数(CubeMX 生成 + 手写) |
|
||||
| `Inc/FreeRTOSConfig.h` | FreeRTOS 内核配置 |
|
||||
@@ -87,7 +83,7 @@ STM32F4-Base/
|
||||
|
||||
```
|
||||
HAL_Init() → SystemClock_Config() → MX_GPIO_Init() → MX_USART1_UART_Init() → MX_SPI2_Init() → MX_SPI1_Init()
|
||||
→ gd5f2gq5ue_init() → fdb_kvdb_init() → [USER CODE: net_init + TCP listen + 其他外设初始化]
|
||||
→ gd5f2gq5ue_init() → [USER CODE: net_init + TCP listen + 其他外设初始化]
|
||||
→ osKernelInitialize() → MX_FREERTOS_Init() → osKernelStart() ← FreeRTOS 调度器启动
|
||||
→ [FreeRTOS tasks: defaultTask, netTask 运行]
|
||||
```
|
||||
@@ -106,12 +102,11 @@ HAL_Init() → SystemClock_Config() → MX_GPIO_Init() → MX_USART1_UART_Init()
|
||||
## 注意
|
||||
|
||||
- `Inc/` 和 `Src/` 中 CubeMX 生成的文件带有 `USER CODE BEGIN`/`END` 标记,自定义代码应写在这些区域之间
|
||||
- `ch395f.c/h`、`gd5f2gq5ue.c/h`、`fal_flash_gd5f2gq5ue.c` 为纯手工代码,不受 CubeMX 保护
|
||||
- `ch395f.c/h`、`gd5f2gq5ue.c/h`、`nand_ftl.c/h` 为纯手工代码,不受 CubeMX 保护
|
||||
- `tpafe5160.c/h` 为纯手工代码,不受 CubeMX 保护
|
||||
- CH395F 每次 SPI 事务需调用 `ch395f_spi_begin()` / `ch395f_spi_end()` 包裹
|
||||
- GD5F2GQ5UE 的 `gd5f2gq5ue.c` 中声明了 `extern SPI_HandleTypeDef hspi1`,需确保 SPI1 已初始化
|
||||
- FlashDB 使用 FAL 模式,`fdb_cfg.h` 中定义 `FDB_USING_FAL_MODE`,`fal_cfg.h` 中定义分区表
|
||||
- FlashDB 详细使用说明见 `FlashDB使用说明.md`
|
||||
|
||||
- `sd2506.c/h` 为纯手工代码,不受 CubeMX 保护
|
||||
- FreeRTOS Kernel V10.3.1 via CMSIS-RTOS V2 接口,HAL 时基使用 TIM7(非 SysTick,避免与 FreeRTOS 冲突)
|
||||
- NVIC 优先级分组 4 位,外设中断优先级全部 ≥ `configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY`(5),确保 ISR 可调 FreeRTOS API
|
||||
@@ -157,13 +152,10 @@ HAL_Init() → SystemClock_Config() → MX_GPIO_Init() → MX_USART1_UART_Init()
|
||||
|
||||
| 分区名 | 偏移 | 大小 | 块范围 | 用途 |
|
||||
|--------|------|------|--------|------|
|
||||
| fdb_kvdb1 | 0 | 64MB | Block 0~511 | FlashDB KVDB 键值数据库 |
|
||||
| fdb_tsdb1 | 64MB | 64MB | Block 512~1023 | FlashDB TSDB 时序数据库 |
|
||||
| ftl_fatfs | 128MB | 128MB | Block 1024~2047 | dhara FTL + FatFS 文件系统 |
|
||||
|
||||
- FlashDB 通过 FAL 层访问 `fdb_kvdb1` / `fdb_tsdb1`(`Drivers/BSP/GD5F2GQ5UE/fal_cfg.h`)
|
||||
- FatFS 通过 dhara FTL 访问 `ftl_fatfs` 分区,`nand_ftl.c` 中 `FTL_START_BLOCK = FTL_FATFS_OFFSET / GD5F_BLOCK_SIZE`(与 `fal_cfg.h` 联动)
|
||||
- 三个分区物理隔离,互不重叠,分区配置统一在 `fal_cfg.h:25-30`
|
||||
- FatFS 通过 dhara FTL 访问 `ftl_fatfs` 分区,`nand_ftl.c` 中 `FTL_START_BLOCK = FTL_FATFS_OFFSET / GD5F_BLOCK_SIZE`
|
||||
- Block 0~1023(128MB)预留,可供后续扩展
|
||||
|
||||
## TPAFE5160 驱动关键点
|
||||
|
||||
|
||||
Reference in New Issue
Block a user