83 lines
1.9 KiB
C
83 lines
1.9 KiB
C
|
|
#include "os_test.h"
|
||
|
|
#include "sys_init.h"
|
||
|
|
|
||
|
|
Type_OS_TestMem_Def rm_Test; // 用于测试的内存
|
||
|
|
os_work_t test_work_handle[10];
|
||
|
|
os_fifo_t fifo_handle[10];
|
||
|
|
os_queue_t queue_handle[10];
|
||
|
|
os_pipe_t pipe_handle[10];
|
||
|
|
|
||
|
|
os_thread_t *os_test_create_thread(os_thread_t *thread_handle, void (*TaskRoute)(void *), char *name, s16_t Priority)
|
||
|
|
{
|
||
|
|
os_thread_create(thread_handle,
|
||
|
|
name,
|
||
|
|
TaskRoute,
|
||
|
|
0,
|
||
|
|
0x1000,
|
||
|
|
Priority);
|
||
|
|
|
||
|
|
return thread_handle;
|
||
|
|
}
|
||
|
|
//
|
||
|
|
|
||
|
|
/* 具体测试 */
|
||
|
|
extern void os_test_fifo(void);
|
||
|
|
extern void os_test_queue(void);
|
||
|
|
extern void os_test_pipe(void);
|
||
|
|
extern void os_test_yield(uint TestTime);
|
||
|
|
extern void os_test_sem(uint TestTime);
|
||
|
|
extern void os_test_sleep(uint TestTime);
|
||
|
|
|
||
|
|
typedef void (*test_single_t)(void);
|
||
|
|
typedef void (*test_con_t)(uint TestTime);
|
||
|
|
|
||
|
|
static test_con_t const test_tab_rt[] = {
|
||
|
|
os_test_yield,
|
||
|
|
os_test_sem,
|
||
|
|
os_test_sleep,
|
||
|
|
};
|
||
|
|
|
||
|
|
static test_single_t const test_tab_ipc[] = {
|
||
|
|
os_test_fifo,
|
||
|
|
os_test_queue,
|
||
|
|
os_test_pipe,
|
||
|
|
};
|
||
|
|
|
||
|
|
INIT_EXPORT_APP(99)
|
||
|
|
{
|
||
|
|
SYS_LOG_INF("success");
|
||
|
|
os_thread_sleep(200);
|
||
|
|
}
|
||
|
|
|
||
|
|
void os_test_main(void)
|
||
|
|
{
|
||
|
|
rand(); // rand() 用到 malloc()
|
||
|
|
CONS_PRINT("\r\n"); // printf() 用到 _malloc_r()
|
||
|
|
|
||
|
|
SYS_LOG_INF("测试准备中 ... \r\n");
|
||
|
|
|
||
|
|
CONS_PRINT("开始测试...\r\n\r\n");
|
||
|
|
|
||
|
|
for (uint i = 0; i < sizeof(test_tab_rt) / sizeof(test_tab_rt[0]); i++)
|
||
|
|
{
|
||
|
|
test_tab_rt[i](1);
|
||
|
|
CONS_PRINT("\r\n");
|
||
|
|
}
|
||
|
|
|
||
|
|
for (uint i = 0; i < sizeof(test_tab_ipc) / sizeof(test_tab_ipc[0]); i++)
|
||
|
|
{
|
||
|
|
test_tab_ipc[i]();
|
||
|
|
}
|
||
|
|
|
||
|
|
for (uint n = 0; n < sizeof(test_work_handle) / sizeof(test_work_handle[0]); n++)
|
||
|
|
{
|
||
|
|
if (os_work_is_valid(&test_work_handle[n]))
|
||
|
|
{
|
||
|
|
os_work_delete(&test_work_handle[n]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
CONS_PRINT("所有测试结束\r\n");
|
||
|
|
CONS_PRINT("============================\r\n");
|
||
|
|
}
|