初始创建FTP服务器
This commit is contained in:
@@ -28,12 +28,12 @@
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ 物理分区布局 (256MB) │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────┬───────────────────┐ │
|
||||
│ │ 预留 (128MB) │ ftl_fatfs (128MB) │ │
|
||||
│ │ Block 0~1023 │ Block 1024~2047 │ │
|
||||
│ │ 未使用 │ dhara FTL + FatFS │ │
|
||||
│ └─────────────────────────────────────┴───────────────────┘ │
|
||||
│ 偏移: 0 128MB 256MB │
|
||||
│ ┌──────────────────────────────────────────────────────────┐ │
|
||||
│ │ ftl_fatfs (256MB) │ │
|
||||
│ │ Block 0~2047 │ │
|
||||
│ │ dhara FTL + FatFS(全部 2048 个块) │ │
|
||||
│ └──────────────────────────────────────────────────────────┘ │
|
||||
│ 偏移: 0 256MB│
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
@@ -91,24 +91,20 @@ HAL_Init → SystemClock_Config → MX_GPIO_Init → MX_USART1_UART_Init
|
||||
单个分区,配置在 `Drivers/BSP/GD5F2GQ5UE/nand_ftl.c`:
|
||||
|
||||
```c
|
||||
#define FTL_FATFS_OFFSET (128U * 1024U * 1024U) // 128MB
|
||||
#define FTL_FATFS_SIZE (128 * 1024 * 1024) // 128MB
|
||||
#define FTL_FATFS_OFFSET 0 // 偏移 0,占用全部 256MB
|
||||
```
|
||||
|
||||
### 3.1 分区对照表
|
||||
|
||||
| 分区名 | 偏移 | 大小 | 物理块范围 | 逻辑用途 |
|
||||
|--------|------|------|-----------|----------|
|
||||
| 预留 | 0 | 128 MB | Block 0~1023 | 未使用 |
|
||||
| `ftl_fatfs` | 128 MB | 128 MB | Block 1024~2047 | dhara FTL + FatFS |
|
||||
| `ftl_fatfs` | 0 | 256 MB | Block 0~2047 | dhara FTL + FatFS |
|
||||
|
||||
### 3.2 配置联动
|
||||
|
||||
- **FTL** — `nand_ftl.c` 中 `FTL_START_BLOCK = FTL_FATFS_OFFSET / GD5F_BLOCK_SIZE = 1024`,`FTL_NUM_BLOCKS` 自动适配剩余块数
|
||||
- **FTL** — `nand_ftl.c` 中 `FTL_START_BLOCK = 0`,`FTL_NUM_BLOCKS = 2048`
|
||||
- **FatFS** — 通过 `disk_ioctl(GET_SECTOR_COUNT)` 获取 FTL 管理的扇区数
|
||||
|
||||
> 调整分区大小时只需修改 `nand_ftl.c` 中的 `FTL_FATFS_OFFSET` 宏,下游模块自动适配。
|
||||
|
||||
---
|
||||
|
||||
## 4. 驱动层:gd5f2gq5ue.c/h
|
||||
@@ -315,12 +311,12 @@ FTL 之上还有一个 **单页写回缓存 (write-back cache)**:
|
||||
### 6.3 容量计算
|
||||
|
||||
```
|
||||
FTL 管理块数 = 1024 (Block 1024~2047)
|
||||
FTL 管理块数 = 2048 (Block 0~2047)
|
||||
每块页数 = 64
|
||||
每页扇区数 (512B) = 4
|
||||
总扇区数 = 1024 × 64 × 4 = 262144
|
||||
总容量 = 262144 × 512 = 128MB (原始容量)
|
||||
FTL 开销后 ≈ 93 MB (随 GC 和 journal 使用量波动)
|
||||
总扇区数 = 2048 × 64 × 4 = 524288
|
||||
总容量 = 524288 × 512 = 256MB (原始容量)
|
||||
FTL 开销后 ≈ 186 MB (随 GC 和 journal 使用量波动)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user