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

📄 ssp_debug.c

📁 abstract rtos
💻 C
📖 第 1 页 / 共 3 页
字号:
            break;        case 80:        #if (AOS_INCLUDE_SERVICE_RTPRTCP == TRUE)            if(0 == subcmd)            {                rtp_show_packet_invalid();            }            else if(1 == subcmd)            {                rtp_clear_packet_invalid();            }        #endif            break;#if( CONFIG_OS_VXWORKS == TRUE )        case 90:            aos_printf( 0, "memFindMax = 0x%x\r\n", memFindMax() );            break;#endif        case 91:            {            extern U32 g_ulTimerQueueFailCnt;            aos_printf( 0, "g_ulTimerQueueFailCnt=%u", g_ulTimerQueueFailCnt );            }            break;        case 92:            {            extern U32 g_ulTimerQueueFailCnt;            aos_printf( 0, "set g_ulTimerQueueFailCnt to zero" );            g_ulTimerQueueFailCnt = 0;            }            break;        case 93:            {               extern struct msg_blk_que lcm_phy_que;#ifdef _EIA2000V5               extern struct msg_blk_que g_stEthRxQueue;#endif               aos_printf( 0, "lcm que len = %u ", lcm_phy_que.qlen );#ifdef _EIA2000V5               aos_printf( 0, "eth rx que len = %u ", g_stEthRxQueue.qlen );#endif            }            break;        case 94:            {                extern g_ulShowFreeMem;                aos_printf( 0, "g_ulShowFreeMem = %u ", g_ulShowFreeMem );            }            break;        case 95:            {                extern g_ulShowFreeMem;                aos_printf( 0, "set g_ulShowFreeMem = %u ", subcmd );                g_ulShowFreeMem = subcmd;            }            break;        case 200:            if( 200 == subcmd )            {                U32 sector;                aos_printf( MPE_DEBUG, "To Erase Flash at 0x%x", p1 );#if( CONFIG_OS_VXWORKS == TRUE )                sector = flash_get_sector_base( p1 );                flash_erase_sector(sector);#endif            }            break;        case 201:            #if( CONFIG_BOARD_GMPU == TRUE )            {                U8   szFileName[20];                U32  ulRet;                                aos_printf( MPE_DEBUG, "backup memory at 0x%x size 0x%x to ip %A", subcmd, p1, p2 );                aos_snprintf(szFileName, sizeof(szFileName), "mem_%x.dat", subcmd );                                ulRet = tftp_putup(MPE_DEBUG, p2, szFileName, (VOID*)subcmd,                                           p1, 0);                if (ulRet != AOS_SUCC)                {                    aos_printf(MPE_DEBUG, "Fail !");                }                else                {                    aos_printf(MPE_DEBUG, "Loading .... ");                }            }            #endif            break;        case 0:            aos_printf( MPE_DEBUG, "" );            aos_printf( MPE_DEBUG, "Allywll Debuger Aid Help" );            aos_printf( MPE_DEBUG, "1.System command" );            aos_printf( MPE_DEBUG, "1.1 cmd mpe xx xx xx xx" );            aos_printf( MPE_DEBUG, "1.2 turnon mpe----enable mpe to print" );            aos_printf( MPE_DEBUG, "1.3 turnoff mpe----disable mpe to print,0xff for all" );            aos_printf( MPE_DEBUG, "1.4 memshow addr len" );            aos_printf( MPE_DEBUG, "1.5 memmod addr 1|2|4 value" );            aos_printf( MPE_DEBUG, "2.Layer3 message constructor" );            aos_printf( MPE_DEBUG, "3.Layer2 message constructor" );            aos_printf( MPE_DEBUG, "" );            aos_printf( MPE_DEBUG, "cmd 3 1 to show mps/mpe information" );            aos_printf( MPE_DEBUG, "cmd 3 2 to show time" );            aos_printf( MPE_DEBUG, "cmd 3 30 [0/1] to show all debug infomation,0--current,1--last time" );            aos_printf( MPE_DEBUG, "cmd 3 31 [0/1] to show exception           ,0--current,1--last time" );            aos_printf( MPE_DEBUG, "cmd 3 32 [0/1] to show task switch         ,0--current,1--last time" );            aos_printf( MPE_DEBUG, "cmd 3 33 [0/1] to show infinite loop       ,0--current,1--last time" );            aos_printf( MPE_DEBUG, "cmd 3 34 [0/1] to show last message        ,0--current,1--last time" );            aos_printf( MPE_DEBUG, "cmd 3 35 [0/1] to show assert information  ,0--current,1--last time" );            aos_printf( MPE_DEBUG, "cmd 3 36 [0/1] to show run flow(last print),0--current,1--last time" );            aos_printf( MPE_DEBUG, "cmd 3 40 [0/1] tid count to show debug trace,0--current,1--last time" );            aos_printf( MPE_DEBUG, "cmd 3 41 [0/1] to disable or enable debug trace,0--disable,1--enable" );            aos_printf( MPE_DEBUG, "cmd 3 50 [0/1] to set serial work mode(0:com,1:bill)" );            aos_printf( MPE_DEBUG, "cmd 3 51       to show serial work mode(0:com,1:bill)" );            aos_printf( MPE_DEBUG, "cmd 3 60 [0/1] to disable or enable print log" );            aos_printf( MPE_DEBUG, "cmd 3 70       to check all dmem valid" );            aos_printf( MPE_DEBUG, "cmd 3 80 [0/1] to show/clear invalid packet num" );            aos_printf( MPE_DEBUG, "cmd 3 90       to os remain place" );            aos_printf( MPE_DEBUG, "cmd 3 91       to show g_ulTimerQueueFailCnt" );            aos_printf( MPE_DEBUG, "cmd 3 92       to clear g_ulTimerQueueFailCnt" );            aos_printf( MPE_DEBUG, "cmd 3 93       to show aos queue length" );            aos_printf( MPE_DEBUG, "cmd 3 94       to show g_ulShowFreeMem" );            aos_printf( MPE_DEBUG, "cmd 3 95 [0/1] to set g_ulShowFreeMem" );            aos_printf( MPE_DEBUG, "cmd 3 200 200 addr      to erase flash block at addr" );            aos_printf( MPE_DEBUG, "cmd 3 201 addr size ip  to upload memory at addr to tftp server ip" );            aos_printf( MPE_DEBUG, "" );                    default:            break;    }    subcmd=subcmd;}VOID debug_mem_show( MPE mpe, U32 start_addr, U32 len ){    S8 print_buf[1024],*s;    U8 *addr;    S32 i;    U8 line_cnt,temp;        addr = (U8*)start_addr;    if( mpe >= MPE_BUTT )    {        mpe = MPE_DEBUG;    }    if( AOS_SUCC != ssp_mpe_print_verify( mpe ) )    {        return;    }    if( len == 0 )    {        len = 1;    }    else if( len >= 256 )    {        len = 256;    }    line_cnt = (U8)((len+15)>>4)-1;    do    {        aos_sprintf(print_buf,"%08X:    ",addr);        s = &print_buf[aos_strlen(print_buf)];        for( i=0;i<16;i++ )        {            if( i==7 )            {                aos_sprintf(s,"%02X - ",*(addr++));                s += 5;            }            else            {                aos_sprintf(s,"%02X ",*(addr++));                s += 3;            }        }        addr -= 16;        for( i=0;i<16;i++ )        {            temp = (U8)*(addr++);            if( (temp < 32) || ( temp > 128 ) )                temp = 0x20;            *(s++) = (S8)temp;        }        *s = 0;        aos_printf( mpe, "%s", print_buf);    }while( line_cnt-- );}VOID debug_mem_modify( U32 addr, U32 len, U32 value ){    S8 *s;    if( sizeof(U8) == len )    {        *(U8*)addr = (U8)value;        s = "U8";        value = (U8)value;    }    else if( sizeof(U16) == len )    {        *(U16*)addr = (U16)value;        s = "U16";        value = (U16)value;    }    else if( sizeof(U32) == len )    {        *(U32*)addr = (U32)value;        s = "U32";        value = (U32)value;    }    else    {        aos_printf( MPE_DEBUG,"len maybe %d, %d, or %d",sizeof(U8), sizeof(U16), sizeof(U32) );        return;    }    aos_printf( MPE_DEBUG, "Debug:Modify %s at 0X%8X to %u", s, addr, value );}VOID debug_show_info(U32 argc, S8 *argv[ ] ){    S8  szBuf[128];    U32 ulIndex = 0;    S32 len;        aos_atol(argv[0], (S32*)&ulIndex);    len = aos_snprintf( szBuf, 128, "\r\ndebug task id:%u,print mode:", print_task_id  );    if( !debuger_connet_status )    {        len += aos_snprintf( &szBuf[len], 128-len, "console"  );    }    else    {        if( debuger_connet_status & DEBUG_CONNECTED_REMOTE )        {            len += aos_snprintf( &szBuf[len], 128-len, "remote+"  );        }        if( debuger_connet_status & DEBUG_CONNECTED_LOCAL )        {            len += aos_snprintf( &szBuf[len], 128-len, "local+"  );        }        if( debuger_connet_status & DEBUG_CONNECTED_CLI )        {            len += aos_snprintf( &szBuf[len], 128-len, "cli, index =%u\r\n", AOS_HTONL(debuger_ip_addr)  );        }        else        {            len += aos_snprintf( &szBuf[len], 128-len, "console\r\n"  );        }    }    cli_out_string( ulIndex , szBuf );}#if( CONFIG_BOARD_GMPU == TRUE )#define NVRAM_ASSERT_MAGIC_NUM  0x55aa3947#define NVRAM_ASSERT_NUM        63#define NVRAM_ASSERT_BUF_LEN    128#if(CONFIG_OS_WINDOWS == TRUE )U32 nvram_copy(U32 desAddr, U32 srcAddr, U32 countByte){    memcpy( desAddr, srcAddr, countByte );}S8 nvram_buf[3*4+NVRAM_ASSERT_NUM*NVRAM_ASSERT_BUF_LEN];#define NVRAM_ASSERT_START_ADDR ((U32)&nvram_buf[0])#else#define NVRAM_ASSERT_START_ADDR     NVRAM_ASSERT_ADDR extern U32 nvram_copy(U32 desAddr, U32 srcAddr, U32 countByte);#endifVOID nvram_assert( const S8 *format,... ){    S8 print_buf[NVRAM_ASSERT_BUF_LEN];    U32 head[3];    VA_LIST argptr;    S32 offset;    SYS_TIME_S now;    S8 task_name[10];static  U8 serialno = 0;    aos_time_get(&now);    aos_task_name(0, task_name);    task_name[9] = 0;        offset = aos_snprintf( (S8*)(print_buf), NVRAM_ASSERT_BUF_LEN, "[%03u-%04d:%02d:%02d ",                 serialno++, now.year, now.month, now.date );    offset += aos_snprintf( (S8*)(&print_buf[offset]), NVRAM_ASSERT_BUF_LEN, "%02d:%02d:%02d:%03d IN %s]",                 now.hour,now.minute,now.second,now.millisec,task_name );    VA_START( argptr, format );        offset +=aos_vsnprintf((S8*)(&print_buf[offset]), (U32)(NVRAM_ASSERT_BUF_LEN-offset), format, argptr );    VA_END( argptr );    nvram_copy( (U32)&head, NVRAM_ASSERT_START_ADDR, sizeof(head) );    if( NVRAM_ASSERT_MAGIC_NUM != head[0] )    {        head[0] = NVRAM_ASSERT_MAGIC_NUM;        head[1] = 0;        head[2] = 0;    }    else if( NVRAM_ASSERT_NUM == head[1] )    {        head[1] = 0;        head[2] = 0;		AOS_ASSERT(0);	}    nvram_copy( NVRAM_ASSERT_START_ADDR + sizeof(head) + head[1]*NVRAM_ASSERT_BUF_LEN,(U32)print_buf,NVRAM_ASSERT_BUF_LEN);    head[2]++;    head[1]++;    if( NVRAM_ASSERT_NUM == head[1] )    {        head[1] = 0;    }    nvram_copy( NVRAM_ASSERT_START_ADDR, (U32)&head, sizeof(head) );}#define NVRAM_ASSERT_CLI_OUT_WAIT( )\do{\    if( CLI_DISPLAY_STOP == cli_out_string_wait(ulIndex, szBuf, &ulCurLine) )\    {\        return;\    }\}while(0)VOID nvram_assert_show(U32 argc, S8 *argv[ ] ){    S8  szBuf[NVRAM_ASSERT_BUF_LEN+3];    U32 ulIndex = 0, ulCurLine=0;    U32 head[3],i;        aos_atol(argv[0], (S32*)&ulIndex);	aos_sprintf(szBuf, "\r\nAssert in nvram:\r\n");    NVRAM_ASSERT_CLI_OUT_WAIT();    nvram_copy( (U32)&head, NVRAM_ASSERT_START_ADDR, sizeof(head) );    if( NVRAM_ASSERT_MAGIC_NUM != head[0] )    {        head[0] = NVRAM_ASSERT_MAGIC_NUM;        head[1] = 0;        head[2] = 0;        nvram_copy( NVRAM_ASSERT_START_ADDR, (U32)&head, sizeof(head) );    	aos_sprintf(szBuf, "\r\nno record\r\n");        NVRAM_ASSERT_CLI_OUT_WAIT();        return;    }    if( 0 == head[2] )    {    	aos_sprintf(szBuf, "\r\nno record\r\n");        NVRAM_ASSERT_CLI_OUT_WAIT();        return;    }    if( head[1] >= NVRAM_ASSERT_NUM )    {        head[1] = 0;        head[2] = 0;        nvram_copy( NVRAM_ASSERT_START_ADDR, (U32)&head, sizeof(head) );    	aos_sprintf(szBuf, "\r\nrecords incorrect\r\n");        NVRAM_ASSERT_CLI_OUT_WAIT();        return;    }    if( head[2] >= NVRAM_ASSERT_NUM )    {        for( i = head[1]; i < NVRAM_ASSERT_NUM; i++ )        {            szBuf[0] = '\r';            szBuf[1] = '\n';            nvram_copy( (U32)&szBuf[2], NVRAM_ASSERT_START_ADDR + sizeof(head) + i*NVRAM_ASSERT_BUF_LEN, NVRAM_ASSERT_BUF_LEN );            szBuf[NVRAM_ASSERT_BUF_LEN+2] = 0;            NVRAM_ASSERT_CLI_OUT_WAIT();        }    }    for( i = 0; i < head[1]; i++ )    {        szBuf[0] = '\r';        szBuf[1] = '\n';        nvram_copy( (U32)&szBuf[2], NVRAM_ASSERT_START_ADDR + sizeof(head) + i*NVRAM_ASSERT_BUF_LEN, NVRAM_ASSERT_BUF_LEN );        szBuf[NVRAM_ASSERT_BUF_LEN+2] = 0;        NVRAM_ASSERT_CLI_OUT_WAIT();    }	aos_sprintf(szBuf, "\r\n\r\n");    NVRAM_ASSERT_CLI_OUT_WAIT();}#endif#endif #ifdef __cplusplus}#endif 

⌨️ 快捷键说明

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