📄 ssp_init.c
字号:
#include "syscfg.h"#ifdef __cplusplus#if __cplusplusextern "C"{#endif #endif #include "sys/sys_pub.h"#include "aos.h"#if( CONFIG_BOARD_GMPU == TRUE )#include "patch/public/patch.h"#endif#include "ssp_cputick.h"#include "ssp_spy.h"#include "ssp_except.h"U32 g_ulSysTextStart=0; U32 g_ulSysTextEnd=0; U32 g_ulPatchTextStart=0; U32 g_ulPatchTextEnd=0; U32 ssp_sys_reg();U32 m_usr_init();U32 m_slab_init( );extern int enable_watch_dog(void);extern void clear_watch_dog(void);#if( CONFIG_OS_VXWORKS == TRUE )#if( CONFIG_CPU_PPC == TRUE )extern void _sysInit ();#else extern void sysInit ();#endifextern char etext []; #endifU32 m_sys_init(){ U32 result; enable_watch_dog();#ifdef _EIA2000V5 sysInitTimeBase();#endif#if( CONFIG_OS_VXWORKS == TRUE ) #if( CONFIG_BOARD_GMPU == TRUE ) g_ulSysTextStart = (U32)_sysInit; g_ulSysTextEnd = (U32)etext; g_ulPatchTextStart = PATCH_CODE_START_ADDR; g_ulPatchTextEnd = PATCH_CODE_START_ADDR+PATCH_CODE_LENGTH; #else #if( CONFIG_CPU_PPC == TRUE ) g_ulSysTextStart = (U32)_sysInit; #else g_ulSysTextStart = (U32)sysInit; #endif g_ulSysTextEnd = (U32)etext; #endif #else g_ulSysTextStart = 0; g_ulSysTextEnd = 0; g_ulPatchTextStart = 0; g_ulPatchTextEnd = 0;#endif sys_task_lock();#if( AOS_INCLUDE_SSP_KER_SPY == TRUE ) result = m_dbg_info_init(); if( AOS_SUCC != result ) { return result; }#endif result = m_cputick_init(); if( AOS_SUCC != result ) { return result; } result = m_int_init(); if( AOS_SUCC != result ) { return result; } result = m_slab_init(); if( AOS_SUCC != result ) { return result; } result = m_lcmque_init(); if( AOS_SUCC != result ) { return result; } result = m_time_init(); if( AOS_SUCC != result ) { return result; } result = m_smem_init(); if( AOS_SUCC != result ) { return result; }#if( AOS_INCLUDE_SSP_KER_EXCEPTION == TRUE ) result = m_except_init(); if( AOS_SUCC != result ) { return result; }#endif result = m_dmem_init(); if( AOS_SUCC != result ) { return result; } result = m_task_init(); if( AOS_SUCC != result ) { return result; } if( AOS_SUCC != m_system_restart_task_init() ) { return result; }#if( AOS_INCLUDE_SSP_KER_SPY == TRUE ) result = m_spy_init(); if( AOS_SUCC != result ) { return result; }#endif result = m_sem_init(); if( AOS_SUCC != result ) { return result; } result = m_mque_init(); if( AOS_SUCC != result ) { return result; }#if( AOS_INCLUDE_SSP_KER_DEBUG == TRUE ) result = m_debug_init(); if( AOS_SUCC != result ) { return result; }#endif result = m_msg_init(); if( AOS_SUCC != result ) { return result; } clear_watch_dog(); result = m_timer_init(); if( AOS_SUCC != result ) { return result; } result = m_tick_init(); if( AOS_SUCC != result ) { return result; } result = ssp_sys_reg(); if( AOS_SUCC != result ) { return result; } if( !aos_is_mini_system() ) { result = m_usr_init(); if( AOS_SUCC != result ) { return result; } } else { result = m_mini_usr_init(); if( AOS_SUCC != result ) { return result; } }#if( CONFIG_OS_VXWORKS == TRUE ) aos_task_create( "sinit", CONFIG_MSG_TASK_STACK_SIZE, TASK_PRIO_ABOVE_NORMAL, AOS_TASK_NOPREEMPT, (VOID(*)(VOID*))m_msg_system_start, (VOID*)NULL, &result );#else result = m_msg_system_start(); if( AOS_SUCC != result ) { return result; }#endif return AOS_SUCC;}U32 ssp_sys_reg(){ U32 result; result = aos_mps_reg( "mps_sys", MPS_SYS, TASK_PRIO_ABOVE_NORMAL); if( AOS_SUCC != result ) { return result; } result = aos_mpe_reg( "mpe_sys", MPE_SYS, MPS_SYS, NULL, NULL ); if( AOS_SUCC != result ) { return result; } result = aos_mpe_reg( "mpe_tmr", MPE_TIMER, MPS_SYS, NULL, NULL ); if( AOS_SUCC != result ) { return result; } if( !aos_is_mini_system() ) { result = aos_mpe_reg( "mpe_lcm", MPE_LCM, MPS_SYS, lcm_init_proc, lcm_msg_proc ); if( AOS_SUCC != result ) { return result; } } #if( AOS_INCLUDE_SSP_KER_DEBUG == TRUE ) result = aos_mpe_reg( "mpe_dbg", MPE_DEBUG, MPS_SYS, debug_init_proc, (MPE_RUN_ROUTINE)debug_msg_proc); if( AOS_SUCC != result ) { return result; }#endif result = aos_mpe_reg( "mpe_tsk", MPE_TASK, MPS_SYS, NULL, NULL ); if( AOS_SUCC != result ) { return result; } result = aos_mpe_reg( "mpe_msg", MPE_MSG, MPS_SYS, NULL, NULL ); if( AOS_SUCC != result ) { return result; } result = aos_mpe_reg( "mpe_sm", MPE_SEM, MPS_SYS, NULL, NULL ); if( AOS_SUCC != result ) { return result; } result = aos_mpe_reg( "mpe_que", MPE_QUE, MPS_SYS, NULL, NULL ); if( AOS_SUCC != result ) { return result; } result = aos_mpe_reg( "mpe_evt", MPE_EVENT, MPS_SYS, NULL, NULL ); if( AOS_SUCC != result ) { return result; } result = aos_mpe_reg( "mpe_mm", MPE_MM, MPS_SYS, NULL, NULL ); if( AOS_SUCC != result ) { return result; } result = aos_mpe_reg( "mpe_tm", MPE_TIME, MPS_SYS, NULL, NULL ); if( AOS_SUCC != result ) { return result; } return AOS_SUCC;}#ifdef __cplusplus#if __cplusplus}#endif #endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -