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

📄 ssp_except.c

📁 abstract rtos
💻 C
字号:
#ifdef __cplusplusextern "C"{#endif#include "syscfg.h"#if( AOS_INCLUDE_SSP_KER_EXCEPTION == TRUE )#include "sys/sys_pub.h"#include "aos.h"#include "ssp_event.h"#include "ssp_task.h"#include "ssp_except.h"#if( CONFIG_BOARD_GMPU == TRUE )#include "db_pub.h"#endif#if (AOS_INCLUDE_SERVICE_SDFS_FTPS == TRUE)#include "files_pub.h"#endifEXCEPTION_BUF_S *g_pException = NULL;U32 g_ulSystemRestartTaskId;#if ( _CPU_ARM )extern VOID ssp_except_handle(U32 ulTask,U32 ulVecNum,ESF *pEsf);#elif ( _CPU_MIPS )extern VOID ssp_except_handle(U32 ulTask,U32 ulVecNum,ESFMIPS *pEsf);#elif( _CPU_PPC )extern VOID ssp_except_handle(U32 ulTask,U32 ulVecNum,ESFPPC *pEsf);#endifVOID system_restart_task();U32 m_except_init(){    g_ulSystemRestartTaskId = U32_BUTT;    if(g_pException->m_ulInitFlag != EXCEPTION_INIT_FLAG)    {        aos_memzero((VOID *)g_pException,sizeof(EXCEPTION_BUF_S));        g_pException->m_ulInitFlag = EXCEPTION_INIT_FLAG;        g_pException->m_ulIndex    = EXCEPTION_RECORD_NUM - 1;        g_pException->m_ulCounter  = 0;    }    else    {        if(g_pException->m_ulCounter > EXCEPTION_RECORD_NUM)        {            if(g_pException->m_ulIndex >= EXCEPTION_RECORD_NUM)            {                g_pException->m_ulCounter = 0;                g_pException->m_ulIndex   = EXCEPTION_RECORD_NUM - 1;            }        }        else if(g_pException->m_ulIndex >= g_pException->m_ulCounter)        {            g_pException->m_ulIndex    = EXCEPTION_RECORD_NUM - 1;            g_pException->m_ulCounter  = 0;        }    }#if( CONFIG_OS_VXWORKS == TRUE )    excHookAdd((FUNCPTR)ssp_except_handle);#endif    return AOS_SUCC;}U32 m_system_restart_task_init(){#if( CONFIG_BOARD_GMPU == TRUE || CONFIG_BOARD_EIA == TRUE )        return aos_task_create( "restart",                             2000,                             TASK_PRIO_HIGHEST,                            AOS_TASK_NOPREEMPT,                            (VOID(*)(VOID*))system_restart_task,                            0,                            &g_ulSystemRestartTaskId );#else    return AOS_SUCC;#endif}VOID system_restart_task(){    U32 event,cnt;        for(;;)    {        aos_event_wait( U32_BUTT, AOS_WAIT_ANY, 0, &event );        cnt = 0;        for( ;; )        {            if( flash_is_writing() )            {                aos_task_delay( 500 );                continue;            }#if( CONFIG_BOARD_GMPU == TRUE )            if( !db_can_reset() )            {                db_backup_table_to_flash();                aos_task_delay( 500 );                continue;            }        #if (AOS_INCLUDE_SERVICE_BILL == TRUE)            if( bill_pool_bill_num() )            {                cnt++;                if( cnt>= 100 )                 {                    AOS_ASSERT(0);                    drv_cpu_reset();                    break;                }                aos_task_delay( 500 );                continue;            }        #endif		#if (AOS_INCLUDE_SERVICE_SDFS_FTPS == TRUE)			if( !files_can_reset() )			{				files_stop_service();                aos_task_delay( 500 );                continue;							}		#endif        #endif            drv_cpu_reset();        }    }}#if( CONFIG_OS_VXWORKS == TRUE )#if ( _CPU_ARM )#include "ssp_except_arm.c"#elif ( _CPU_MIPS )#include "ssp_except_mips.c"#elif( _CPU_PPC )#include "ssp_except_ppc.c"#endif#endif#endif#ifdef __cplusplus}#endif

⌨️ 快捷键说明

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