📄 ssp_spy.h
字号:
#ifdef __cplusplusextern "C"{#endif#include "ssp_except.h"#ifndef _SSP_SPY_H_#define _SSP_SPY_H_#define CONFIG_TASK_SWITCH_TRACK_NUM 10#define SPY_RUN_TICK 100#define SPY_ISR_TICK 20#define SPY_RUN_DEADLINE_IN_TICK (120*100) #define SPY_STACK_LAYER 512#define SPY_TASK_NUM 4#define SPY_ON TRUE#define SPY_OFF FALSE#define SPY_INIT_FLAG 0XABCDABCD#define SPY_STACK_DEFAULT_VALUE 0XEEEEEEEE#define SPY_STACK_BOTTOM_VALUE 0XABCDABCD#define SPY_NVRAM_ADDR 0X0#define DBG_MAX_MSG_LEN 40#define DBG_MAX_ASSERT_NUM 20#define DBG_MAGIC_NUM 0x5A2CF071UL#define DBG_MAX_TRACK_LEN 100#define MSG_IN 1#define MSG_OUT 2#define TRACE_IN 1#define TRACE_OUT 2#define TRACE_INFO 4#define MAX_TRACE_ITEM_PER_TASK 4#define MAX_STACK_LEVEL 64#define AOS_MINI_SYSTEM_FLAG 0x5A5577AAUL#define AOS_NORNAL_SYSTEM_FLAG 0#define DBG_SOFTWARE_RESET_MAGIC_STR "@AosRstMagic#$%" #if( CONFIG_OS_VXWORKS == TRUE && ( CONFIG_BOARD_GMPU == TRUE || CONFIG_BOARD_GDSP == TRUE ) )#define DBG_SOFTWARE_RESET_MAGIC_ADDR (CONFIG_DEBUG_INFO_ADDR+CONFIG_DEBUG_INFO_LEN-24)#else#define DBG_SOFTWARE_RESET_MAGIC_ADDR ((U32)dbg_pool+CONFIG_DEBUG_INFO_LEN-24)#endifstruct stack_state{ U32 *stack_addr; U32 *next_inst_addr; };typedef struct task_switch_trace_item{ U32 m_ulPowerOn; U32 m_ulTaskId; S8 m_cName[AOS_NAME_LEN]; U32 m_ulMaxTick; U32 m_ulRunTick; U8 m_uDate; U8 m_uHour; U8 m_uMinute; U8 m_uSecond; U32 m_ulMillisec; U32 m_ulLoop; U32 m_ulPc; U32 m_ulSp; U32 m_aStack[EXCEPTION_STACK_SIZE]; struct stack_layer m_aStackLayer[EXCEPTION_STACK_LAYER]; }TASK_INFINITE_LOOP_ITEM_S;typedef struct task_switch_trace{ U32 m_ulInitFlag; U32 m_ulIndex; TASK_INFINITE_LOOP_ITEM_S m_aItem[SPY_TASK_NUM];}TASK_INFINITE_LOOP_TRACE_S;typedef struct tsk_sw_track_s{ U32 cur_count; U32 cur_index; U32 cur_task; U32 last_tasks[CONFIG_TASK_SWITCH_TRACK_NUM]; CPU_TICK_S last_ticks[CONFIG_TASK_SWITCH_TRACK_NUM];}TSK_SW_TRACK_S;typedef struct assert_item_s{ SYS_TIME_S tm; S8 assert_str[200];}ASSERT_ITEM_S;typedef struct assert_info_s{ U32 cur_index,count; ASSERT_ITEM_S assert_item[DBG_MAX_ASSERT_NUM];}ASSERT_INFO_S;typedef struct dbg_trace_item{ U8 info_class; U8 int_count; U16 line; S8 *name; U32 paras[4]; U32 sn; U32 sec; U32 usec; }DBG_TRACE_ITEM;typedef struct dbg_trace_info{ S8 task_name[AOS_NAME_LEN]; U8 is_deleted; U8 is_full; U8 is_stop; U8 padding; S32 stack_level; U32 next_index; DBG_TRACE_ITEM trace_item[MAX_TRACE_ITEM_PER_TASK];}DBG_TRACE_INFO;typedef struct dbg_info_s{ EXCEPTION_BUF_S exc_info; TSK_SW_TRACK_S tsk_sw_info; TASK_INFINITE_LOOP_TRACE_S infinite_loop_task; U32 last_msg_ptr; U8 last_msg[DBG_MAX_MSG_LEN+4]; ASSERT_INFO_S assert_info; S8 run_track[DBG_MAX_TRACK_LEN+4]; DBG_TRACE_INFO trace_info[CONFIG_TASK_NUMBER]; U32 tick_is_handling;}DBG_INFO_S;typedef struct dbg_info_pool_s{ U32 magic1; U32 cur_dbg_index; U32 count; U32 cur_mini_system_flag1; U32 next_syetem_flag1;#if( CONFIG_BOARD_GMPU == TRUE || CONFIG_BOARD_GDSP == TRUE ) DBG_INFO_S dbg_info[4];#else DBG_INFO_S dbg_info[2];#endif U32 cur_mini_system_flag2; U32 next_syetem_flag2; U32 min_start_count; U32 magic2;}DBG_POOL_S;U32 m_spy_init();VOID ssp_task_spy();VOID ssp_stack_spy();VOID ssp_stack_check(U32 ulTaskID);VOID ssp_add_task_switch_track( U32 sys_last_task, U32 sys_next_task );VOID ssp_show_task_switch_track();TASK_INFINITE_LOOP_TRACE_S* ssp_get_task_infinite_loop_cb_base();U32 m_dbg_info_init();VOID dbg_track_msg_in( VOID* msgp);VOID dbg_track_msg_out( );VOID dbg_track_assert( S8 *cond, S8*file, U32 line );VOID dbg_track_run_flow( S8 *fmt, ... );VOID dbg_track_tick_state( U32 state );DBG_INFO_S *dbg_get_dbg_info( U32 dbg_index );VOID dbg_show_exc_info( U32 dbg_index );VOID dbg_show_exc_item( EXCEPTION_ITEM_S *pItem );VOID dbg_show_tsk_sw_info( U32 dbg_index );VOID dbg_show_infinite_loop_info( U32 dbg_index );VOID dbg_show_last_msg_info( U32 dbg_index );VOID dbg_show_assert_info( U32 dbg_index );VOID dbg_show_run_flow( U32 dbg_index );VOID aos_show_trace( U32 dbg_index, U32 task_id, U32 count );VOID dbg_force_reset();VOID dbg_info_log();#endif#ifdef __cplusplus}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -