⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 abstract rtos
💻 C
字号:
#ifdef __cplusplus#if __cplusplusextern "C"{#endif #endif #include "sys/sys_pub.h"#include "aos.h"U32 eventTaskId;AOS_ASSERTFILE();#define MSG_TEST_COUNT 5struct short_tst_msg_s{    U32 type;    U8 info[20];};struct long_tst_msg_s{    U32 type;    U8 info[400];};struct debug_cmd_msg_s{    U32 cmd;    U32 para1;    U32 para2;    U32 para3;};TMR my_tmr[3]= {NULL,NULL,NULL};#define TIMEOUT_LEN 1000#define TM_CREATE_TASK  4#define TM_SEND_EVENT    5VOID eventProc();U32  msgInit1( START_ORDER_E order ){    switch( order )    {        case STARTUP_INITIAL:                   break;                    case STARTUP_LOAD_DATA:              break;                    case STARTUP_GO:                       aos_timer_start(&my_tmr[0],MPE_TST1, TIMEOUT_LEN*4,     0, 0, AOS_TIMER_NO_LOOP);        aos_timer_start(&my_tmr[1],MPE_TST1, TIMEOUT_LEN*2, 1, 0, AOS_TIMER_NO_LOOP);        aos_timer_start(&my_tmr[2],MPE_TST1, TIMEOUT_LEN*2, 2, 0, AOS_TIMER_NO_LOOP);        aos_timer_start(NULL,MPE_TST1, TIMEOUT_LEN*4,    TM_CREATE_TASK, 0, AOS_TIMER_NO_LOOP);                    break;    }return AOS_SUCC;}VOID msgProc1( MSG_S *msg, VOID*pvMsgBuf ){    struct long_tst_msg_s *pMsg = (struct long_tst_msg_s*)pvMsgBuf;    struct debug_cmd_msg_s *pDebugMsg;    TIMER_MSG_S *pTimerMsg;        AOS_ASSERT(  NULL != msg && NULL != pvMsgBuf );    aos_printf( MPE_TST1, "Recv Msg, srcProc=%d, srcMpe=%d, dstProc=%d,dstMpe=%d,msg_buf=0x%x, size=%d",                         msg->srcProcessorId,msg->srcMpe,msg->dstProcessorId,msg->dstMpe,pvMsgBuf, msg->ulSize);                             switch( msg->srcMpe )    {        case MPE_DEBUG:            pDebugMsg = (struct debug_cmd_msg_s *)pvMsgBuf;                        switch( pDebugMsg->cmd )            {                case 0:                    aos_printf( MPE_TST1, "to test 0" );                    break;                                    case 1:                    aos_printf( MPE_TST1, "to test 1" );                    break;                                    case 2:                    aos_printf( MPE_TST1, "to test 2" );                    break;                                }            break;                    case MPE_TST2:            if( 0 == pMsg->type )            {                aos_printf( MPE_TST1,"It is short test message" );            }            else if( 1 == pMsg->type )            {                aos_printf( MPE_TST1,"It is long test message" );            }            else            {                aos_printf( MPE_TST1,"unknown test message" );            }                        break;        case MPE_TST3:            break;        case MPE_TIMER:            pTimerMsg = (TIMER_MSG_S*)pvMsgBuf;            aos_printf( MPE_TST1, "Timeout message, name=%d, para=%d",pTimerMsg->ulTimerName,pTimerMsg->ulPara);            switch( pTimerMsg->ulTimerName )            {                case 0:                    break;                                    case 1:                    break;                                    case 2:                    break;                case TM_CREATE_TASK:                    if( AOS_SUCC !=                         aos_task_create("_event", 0x2000, TASK_PRIO_NORMAL, AOS_TASK_NOPREEMPT, eventProc, (VOID*)NULL, &eventTaskId) )                    {                        aos_printf( MPE_TST1, "create event test task fail" );                    }                    aos_timer_start( NULL, MPE_TST1, TIMEOUT_LEN*10, TM_SEND_EVENT, 1, AOS_TIMER_NO_LOOP );                    break;                case TM_SEND_EVENT:                        aos_printf( MPE_TST1, "send event =0x%x", pTimerMsg->ulPara );                            aos_event_post( eventTaskId, pTimerMsg->ulPara);                         pTimerMsg->ulPara |= pTimerMsg->ulPara<<1;						 if( pTimerMsg->ulPara )						 {						 }                                             aos_timer_start( NULL, MPE_TST1, TIMEOUT_LEN*3, TM_SEND_EVENT, pTimerMsg->ulPara, AOS_TIMER_NO_LOOP );                    break;                                                    }			if( pTimerMsg->ulTimerName >2 )			{				break;			}                if( 0 == pTimerMsg->ulTimerName )                {                    aos_timer_start(&my_tmr[pTimerMsg->ulTimerName],MPE_TST1, TIMEOUT_LEN*4,  pTimerMsg->ulTimerName,++(pTimerMsg->ulPara), AOS_TIMER_NO_LOOP);                }                else if ( 1 == pTimerMsg->ulTimerName )                {                   aos_timer_start(&my_tmr[pTimerMsg->ulTimerName],MPE_TST1, TIMEOUT_LEN*2,  pTimerMsg->ulTimerName,++(pTimerMsg->ulPara), AOS_TIMER_NO_LOOP);                 }                else                {                   aos_timer_start(&my_tmr[pTimerMsg->ulTimerName],MPE_TST1, TIMEOUT_LEN*2,  pTimerMsg->ulTimerName,++(pTimerMsg->ulPara), AOS_TIMER_NO_LOOP);                 }                            break;    }}VOID eventProc(){    U32 event;    if( AOS_SUCC == aos_event_wait((U32)-1, AOS_WAIT_ALL, 0, &event) )    {         aos_printf( MPE_TST1, "wait succ, recv =0x%x",event );    }    else    {         aos_printf( MPE_TST1, "wait fail, recv =0x%x",event );    }    if( AOS_SUCC == aos_event_wait((U32)-1, AOS_WAIT_ANY, 0, &event) )    {         aos_printf( MPE_TST1, "wait succ, recv =0x%x",event );    }    else    {         aos_printf( MPE_TST1, "wait fail, recv =0x%x",event );    }    }VOID StartTest( U32 cmd ){    struct debug_cmd_msg_s *pDebugMsg;    MSG_S msg;    pDebugMsg = (struct debug_cmd_msg_s *)aos_msg_alloc(MPE_DEBUG, sizeof(struct debug_cmd_msg_s));    if( NULL == pDebugMsg )    {        aos_printf( MPE_DEBUG, "Start Test fail1" );    }    msg.srcProcessorId = LOCAL_PROCESSOR_ID;    msg.srcMpe           = MPE_DEBUG;    msg.dstProcessorId= LOCAL_PROCESSOR_ID;    msg.dstMpe           = MPE_TST1;    msg.msgPrio           = MSG_PRIO_NORMAL;    msg.ulSize= sizeof( struct debug_cmd_msg_s);        pDebugMsg->cmd = cmd;    if( AOS_SUCC != aos_msg_send(& msg) )    {        aos_printf( MPE_DEBUG, "Start Test fail2" );    }}#ifdef __cplusplus#if __cplusplus}#endif #endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -