# Drivers/BSP/NET/lftpd/ — 轻量 FTP 服务器(第三方移植) > ⚠️ **第三方开源库移植**(lftpd,许可证见 [`LICENSE.txt`](LICENSE.txt)),**非自研代码**。 > 本目录 README 仅说明其在本项目中的**定位与对接方式**;库内部逻辑请参考上游。 ## 文件一览 | 文件 | 作用 | |---|---| | `lftpd.c/h` | FTP 服务器主体(命令解析、状态机、数据通道) | | `lftpd_io.c` | I/O 适配层(**本项目对接 FatFs 的关键所在**) | | `lftpd_inet.c` | 网络适配(对接本项目的 BSD Socket API) | | `lftpd_log.c` | 日志输出适配 | | `lftpd_string.c` | 字符串工具 | | `private/*.h` | 内部头文件 | | `LICENSE.txt` | 上游许可证 | ## 在本项目中的对接 ``` ftpTask(App/ 侧创建) ↓ 等待 SYS_EVT_NET_READY + SYS_EVT_STORAGE_READY(osFlagsNoClear!) lftpd(本目录) ├── lftpd_inet.c → Drivers/BSP/NET/net_socket.c(BSD Socket API) └── lftpd_io.c → Lib/FatFs(文件读写) ``` ## ⚠️ 项目相关注意 - **ftpTask 就绪屏障**:`osEventFlagsWait` 等两位就绪必须加 `osFlagsNoClear`, 否则位被先到的消费者清掉 → FTP 21 端口静默不监听(无日志无报错) - **lftpd 大局部缓冲**:已按 `docs/内存管理/RAM使用分析与优化方案.md` §4.1.4 静态化 9 处 大局部缓冲(BSS +4.6KB),使 ftpTask 栈峰值从 3480B 降到 1184B——**勿改回局部变量** - **上传中止截断**:FTP STOR 中途断开后首笔复连被截断(TRAP-NET-18)已在 `net_socket.c` 侧修复 - 本目录受 pre-commit 的**部分排除**(第三方代码) ## 相关文档 - 测试指南:`docs/测试说明/板级测试/FTP_Test_Guide.md` - 台架探针:`test/host/ftp_abort_probe.py`、`MDK-ARM/ftp_freeze_probe.py` - 内存优化:`docs/内存管理/RAM使用分析与优化方案.md` §4.1.4