整理了main 函数
This commit is contained in:
+2
-2
@@ -38,8 +38,8 @@ extern "C" {
|
||||
* 阶段使能开关(取消注释即启用对应阶段)
|
||||
*
|
||||
* 构建模式互斥(详见 docs/CH395F_Test_Guide.md「构建模式与执行顺序」):
|
||||
* 硬件层模式(阶段 1~5):netTask 不创建,ch395fTestTask 独占 CH395F
|
||||
* NET 层模式 (阶段 6~11):完整网络栈,netTask 轮询 + ch395fTestTask 监听循环
|
||||
* 硬件层模式(阶段 1~5):netTask 不创建,testTask 独占 CH395F
|
||||
* NET 层模式 (阶段 6~11):完整网络栈,netTask 轮询 + testTask 监听循环
|
||||
*
|
||||
* 注意:同层内可多选(Phase 6~10 共享 testTask 循环);
|
||||
* Phase 4 (DHCP) 会改变 IP,必须独立运行;
|
||||
|
||||
+5
-17
@@ -1345,13 +1345,12 @@ static void phase5_run(void) {
|
||||
TEST_REPORT("Phase 5");
|
||||
}
|
||||
#endif
|
||||
void StartCh395fTestTask(void *argument)
|
||||
/*
|
||||
* CH395F 测试套件入口(由 test_config.c 的 start_test_task 统一调度)。
|
||||
* 此处只负责 CH395F 自身的硬件层 / NET 层逻辑,套件选择已上移到 test_config.c。
|
||||
*/
|
||||
void ch395f_test_run(void)
|
||||
{
|
||||
(void)argument;
|
||||
|
||||
DBG_INFO("Test task started, suite=%s", TEST_SUITE_NAME);
|
||||
|
||||
#if defined(TEST_SUITE_CH395F)
|
||||
#if defined(ENABLE_HW_LAYER_TESTS)
|
||||
/* 硬件层模式(阶段 1~5):netTask 未创建,由本任务完成一次性协议栈
|
||||
* 初始化并独占 CH395F —— 无 net_poll() 并发读取中断,无 SPI 并发事务 */
|
||||
@@ -1391,16 +1390,5 @@ void StartCh395fTestTask(void *argument)
|
||||
#else
|
||||
net_layer_test_main();
|
||||
#endif
|
||||
#endif /* TEST_SUITE_CH395F */
|
||||
#elif defined(TEST_SUITE_STORAGE)
|
||||
storage_test_run();
|
||||
#elif defined(TEST_SUITE_GD5F)
|
||||
gd5f_test_run();
|
||||
#elif defined(TEST_SUITE_RTC)
|
||||
sd2506_test_run();
|
||||
#endif
|
||||
|
||||
for (;;) {
|
||||
osDelay(1000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void StartCh395fTestTask(void *argument);
|
||||
void start_test_task(void *argument);
|
||||
void ch395f_test_run(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*****************************************************************************
|
||||
* 模块名称:CH395F NET 层测试(Phase 6~11)
|
||||
* 模块功能:基于 BSD Socket API(单连接模式)的 NET 层测试,由 ch395fTestTask
|
||||
* 模块功能:基于 BSD Socket API(单连接模式)的 NET 层测试,由 testTask
|
||||
* 任务内的 net_layer_test_main() / net_layer_client_test_main() 事件
|
||||
* 循环驱动,需 PC 配合。
|
||||
* 包含 Phase 6(TCP Echo) / 7(TCP Client) / 8(大文件) / 9(Select) /
|
||||
|
||||
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/* NET 层测试事件循环入口(定义于 net_test_task.c)。
|
||||
* 由 ch395fTestTask 在 NET 层构建模式下调用,内部创建单连接 TCP 监听
|
||||
* 由 testTask 在 NET 层构建模式下调用,内部创建单连接 TCP 监听
|
||||
* 并驱动 Phase 6/8~11 依次执行,连接断开后自动重新 listen。 */
|
||||
void net_layer_test_main(void);
|
||||
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ extern sd2506_test_stats_t g_sd2506_test_stats;
|
||||
g_sd2506_test_stats.failed); \
|
||||
} while (0)
|
||||
|
||||
/* 测试入口:由 StartCh395fTestTask 经 TEST_SUITE_RTC 调度,顺序执行 Phase 1~3 */
|
||||
/* 测试入口:由 start_test_task 经 TEST_SUITE_RTC 调度,顺序执行 Phase 1~3 */
|
||||
void sd2506_test_run(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
* 当前测试:Phase 1 基本读写(init / 读 / 写 / 回读一致 / 走时),
|
||||
* 结束后自动恢复板子原始时间。
|
||||
* 入口:sd2506_test_run()(由 StartCh395fTestTask 经 TEST_SUITE_RTC 调度)
|
||||
* 入口:sd2506_test_run()(由 start_test_task 经 TEST_SUITE_RTC 调度)
|
||||
* 创建日期:2026-08-28
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* 模块名称:Storage Test Suite
|
||||
* 模块功能:FTL + FatFS 存储测试的声明与断言宏。实现见 storage_test_task.c,
|
||||
* 统一由 ch395fTestTask 调度;正常产品构建下由 defaultTask 调用,
|
||||
* 统一由 testTask 调度;正常产品构建下由 defaultTask 调用,
|
||||
* 行为与原 defaultTask 内联逻辑一致。
|
||||
* 适用平台:STM32F4 系列
|
||||
* 作者:王建锋
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/******************************************************************************
|
||||
* 模块名称:Storage Test Task
|
||||
* 模块功能:FTL + FatFS 存储测试,从 defaultTask 迁入,统一由 ch395fTestTask
|
||||
* 模块功能:FTL + FatFS 存储测试,从 defaultTask 迁入,统一由 testTask
|
||||
* 调度运行。正常产品构建下由 defaultTask 调用,行为与原内联逻辑一致。
|
||||
* 作者:王建锋
|
||||
* 创建日期:2026-08-26
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
/******************************************************************************
|
||||
* 模块名称:统一测试任务调度器(Test Config)
|
||||
* 模块功能:所有测试任务的唯一入口。FreeRTOS 的 testTask 仅调用本文件
|
||||
* 的 start_test_task(),由本文件根据 test_config.h 中启用的
|
||||
* TEST_SUITE_* 宏,将测试分发到对应套件的运行函数。
|
||||
*
|
||||
* 各套件运行函数(ch395f_test_run / storage_test_run / gd5f_test_run
|
||||
* / sd2506_test_run)各自实现具体测试逻辑,本文件只负责"选哪个跑",
|
||||
* 不掺杂任何具体测试细节,使测试入口界限清晰、易于维护。
|
||||
* 作者:王建锋
|
||||
* 创建日期:2026-08-29
|
||||
******************************************************************************/
|
||||
|
||||
#define DBG_TAG "[TEST_CFG]"
|
||||
#include "cmsis_os.h"
|
||||
#include "dbg_log.h"
|
||||
|
||||
#include "test_config.h"
|
||||
|
||||
#include "ch395f_test_task.h"
|
||||
#include "storage_test.h"
|
||||
#include "gd5f_test.h"
|
||||
#include "sd2506_test.h"
|
||||
|
||||
/*
|
||||
* 测试任务统一入口(FreeRTOS start_test_task 线程函数)。
|
||||
* 根据编译期选中的 TEST_SUITE_* 调度对应套件,其余时间挂起。
|
||||
*/
|
||||
void start_test_task(void *argument)
|
||||
{
|
||||
(void)argument;
|
||||
|
||||
DBG_INFO("Test task started, suite=%s", TEST_SUITE_NAME);
|
||||
|
||||
#if defined(TEST_SUITE_CH395F)
|
||||
ch395f_test_run();
|
||||
#elif defined(TEST_SUITE_STORAGE)
|
||||
storage_test_run();
|
||||
#elif defined(TEST_SUITE_GD5F)
|
||||
gd5f_test_run();
|
||||
#elif defined(TEST_SUITE_RTC)
|
||||
sd2506_test_run();
|
||||
#else
|
||||
DBG_INFO("No test suite selected (normal product build)");
|
||||
#endif
|
||||
|
||||
for (;;) {
|
||||
osDelay(1000);
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* 模块名称:统一测试套件选择
|
||||
* 模块功能:集中选择当前构建要运行的测试套件。所有测试统一由
|
||||
* ch395fTestTask(StartCh395fTestTask)调度,defaultTask 在测试
|
||||
* testTask(start_test_task)调度,defaultTask 在测试
|
||||
* 构建下空闲,正常产品构建下仅运行存储挂载/测试。
|
||||
* 适用平台:STM32F4 系列
|
||||
* 作者:王建锋
|
||||
|
||||
Reference in New Issue
Block a user