CH395F 硬件测试完毕

This commit is contained in:
2026-08-24 16:16:18 +08:00
parent fc88bc8752
commit 4375873083
14 changed files with 2183 additions and 787 deletions

View File

@@ -9,19 +9,19 @@
* 修改记录:
* 2026-07-22 全面重构为单连接模式,增加大文件传输、边界条件等测试
*
* === 测试阶段一览 ===
* Phase | 类型 | 描述
* ---------|--------------|-----------------------------------------------
* Phase 1 | 独立运行 | 寄存器读写 + SPI 命令路径验证
* Phase 2 | PC 配合 | TCP Client 收发 + 关闭重连
* Phase 3 | PC 配合 | UDP Server EchoHELLO + PING + 大包
* Phase 4 | testTask | NET 层 TCP Echo单连接模式基础收发验证
* Phase 5 | testTask | NET 层大文件传输20KB+ 分块收发
* Phase 6 | PC 配合 | DHCP 自动获取 IP
* Phase 7 | testTask | Select/Poll I/O 多路复用
* Phase 8 | testTask | 边界条件测试零长度、DMA 边界、缓冲溢出)
* Phase 9 | 需拔插网线 | PHY 链路恢复
* Phase 10 | testTask | KeepAlive 超时断开测试
* === 测试阶段一览(硬件层 1~5 → NET 层 6~10严格顺序执行 ===
* Phase | | 描述
* ---------|----------|-----------------------------------------------
* Phase 1 | 硬件层 | 独立运行:寄存器读写 + SPI 命令路径验证
* Phase 2 | 硬件层 | PC 配合:TCP Client 收发 + 关闭重连
* Phase 3 | 硬件层 | PC 配合:UDP Server Echo60 轮动态源地址回显HELLO 探针不计数
* Phase 4 | 硬件层 | PC 配合DHCP 自动获取 IP
* Phase 5 | 硬件层 | PC 配合大文件分块回传裸命令tcp_server 配合
* Phase 6 | NET 层 | testTaskTCP Echo单连接模式基础收发验证
* Phase 7 | NET 层 | testTask大文件传输20KB+ 分块收发)
* Phase 8 | NET 层 | testTaskSelect/Poll I/O 多路复用
* Phase 9 | NET 层 | testTask边界条件测试零长度、DMA 边界、缓冲溢出)
* Phase 10 | NET 层 | testTaskKeepAlive 超时断开测试
*/
#ifndef __CH395F_TEST_H
@@ -35,19 +35,43 @@ extern "C" {
/*
* 阶段使能开关(取消注释即启用对应阶段)
* 注意一次仅启用一个阶段Phase 4/5/7/8 共享 testTask 循环,可同时启用)
* Phase 6 (DHCP) 会改变 IP必须独立运行
*
* 构建模式互斥(详见 docs/CH395F_Test_Guide.md「构建模式与执行顺序」
* 硬件层模式(阶段 1~5netTask 不创建ch395fTestTask 独占 CH395F
* NET 层模式 (阶段 6~10完整网络栈netTask 轮询 + ch395fTestTask 监听循环
*
* 注意同层内可多选Phase 6~10 共享 testTask 循环);
* Phase 4 (DHCP) 会改变 IP必须独立运行
* 两层同时启用会在下方触发 #error。
*/
#define ENABLE_PHASE1_TESTS /* 寄存器读写 + SPI 命令路径 */
//#define ENABLE_PHASE2_TESTS /* TCP Client 收发 + 关闭重连 */
//#define ENABLE_PHASE3_TESTS /* UDP Server Echo */
//#define ENABLE_PHASE4_TESTS /* NET 层 TCP Echo单连接基础收发 */
//#define ENABLE_PHASE5_TESTS /* NET 层大文件传输20KB+ 分块 */
//#define ENABLE_PHASE6_TESTS /* DHCP 自动获取 IP会改 IP独立运行 */
//#define ENABLE_PHASE7_TESTS /* Select/Poll I/O 多路复用 */
//#define ENABLE_PHASE8_TESTS /* 边界条件测试 */
//#define ENABLE_PHASE9_TESTS /* PHY 链路恢复测试 */
//#define ENABLE_PHASE10_TESTS /* KeepAlive 超时断开测试 */
/* ---- 硬件层(阶段 1~5---- */
//#define ENABLE_PHASE1_TESTS /* [硬] 寄存器读写 + SPI 命令路径 */
//#define ENABLE_PHASE2_TESTS /* [硬] TCP Client 收发 + 关闭重连 */
//#define ENABLE_PHASE3_TESTS /* [硬] UDP Server Echo */
//#define ENABLE_PHASE4_TESTS /* [硬] DHCP 自动获取 IP会改 IP独立运行 */
#define ENABLE_PHASE5_TESTS /* [硬] 大文件传输硬件层PC 配合 */
/* ---- NET 层(阶段 6~10---- */
//#define ENABLE_PHASE6_TESTS /* [网] TCP Echo单连接基础收发 */
//#define ENABLE_PHASE7_TESTS /* [网] 大文件传输20KB+ 分块) */
//#define ENABLE_PHASE8_TESTS /* [网] Select/Poll I/O 多路复用 */
//#define ENABLE_PHASE9_TESTS /* [网] 边界条件测试 */
//#define ENABLE_PHASE10_TESTS /* [网] KeepAlive 超时断开测试 */
#if defined(ENABLE_PHASE1_TESTS) || defined(ENABLE_PHASE2_TESTS) || \
defined(ENABLE_PHASE3_TESTS) || defined(ENABLE_PHASE4_TESTS) || \
defined(ENABLE_PHASE5_TESTS)
#define ENABLE_HW_LAYER_TESTS 1
#endif
#if defined(ENABLE_PHASE6_TESTS) || defined(ENABLE_PHASE7_TESTS) || \
defined(ENABLE_PHASE8_TESTS) || defined(ENABLE_PHASE9_TESTS) || \
defined(ENABLE_PHASE10_TESTS)
#define ENABLE_NET_LAYER_TESTS 1
#endif
#if defined(ENABLE_HW_LAYER_TESTS) && defined(ENABLE_NET_LAYER_TESTS)
#error "硬件层(1~5)与NET层(6~10)测试互斥:请分两次构建,见 CH395F_Test_Guide 构建模式与执行顺序"
#endif
/* 测试统计 */
typedef struct {