提交 e59693e7 编写于 作者: O openharmony_ci 提交者: Gitee

!278 修复开机概率挂死

Merge pull request !278 from Zhaotianyu/0603initframework_fix
...@@ -231,9 +231,7 @@ LITE_OS_SEC_TEXT_INIT INT32 OsMain(VOID) ...@@ -231,9 +231,7 @@ LITE_OS_SEC_TEXT_INIT INT32 OsMain(VOID)
if (ret != LOS_OK) { if (ret != LOS_OK) {
return ret; return ret;
} }
#if (LOSCFG_KERNEL_SMP == 1)
release_secondary_cores();
#endif
OsInitCall(LOS_INIT_LEVEL_VM_COMPLETE); OsInitCall(LOS_INIT_LEVEL_VM_COMPLETE);
ret = OsIpcInit(); ret = OsIpcInit();
...@@ -267,6 +265,10 @@ LITE_OS_SEC_TEXT_INIT INT32 OsMain(VOID) ...@@ -267,6 +265,10 @@ LITE_OS_SEC_TEXT_INIT INT32 OsMain(VOID)
OsInitCall(LOS_INIT_LEVEL_KMOD_EXTENDED); OsInitCall(LOS_INIT_LEVEL_KMOD_EXTENDED);
#if (LOSCFG_KERNEL_SMP == 1)
release_secondary_cores();
#endif
OsInitCall(LOS_INIT_LEVEL_KMOD_TASK); OsInitCall(LOS_INIT_LEVEL_KMOD_TASK);
#ifdef LOS_INIT_STATISTICS #ifdef LOS_INIT_STATISTICS
......
...@@ -72,7 +72,7 @@ STATIC VOID InitLevelCall(const CHAR *name, const UINT32 level, struct ModuleIni ...@@ -72,7 +72,7 @@ STATIC VOID InitLevelCall(const CHAR *name, const UINT32 level, struct ModuleIni
g_initCurrentLevel = level; g_initCurrentLevel = level;
g_initCurrentModule = initLevelList[level]; g_initCurrentModule = initLevelList[level];
} else { } else {
while (g_initCurrentLevel != level) { while (g_initCurrentLevel < level) {
} }
} }
...@@ -106,7 +106,7 @@ STATIC VOID InitLevelCall(const CHAR *name, const UINT32 level, struct ModuleIni ...@@ -106,7 +106,7 @@ STATIC VOID InitLevelCall(const CHAR *name, const UINT32 level, struct ModuleIni
#endif #endif
} while (1); } while (1);
if (level >= LOS_INIT_LEVEL_VM_COMPLETE) { if (level >= LOS_INIT_LEVEL_KMOD_TASK) {
LOS_AtomicInc(&g_initCount); LOS_AtomicInc(&g_initCount);
while ((LOS_AtomicRead(&g_initCount) % LOSCFG_KERNEL_CORE_NUM) != 0) { while ((LOS_AtomicRead(&g_initCount) % LOSCFG_KERNEL_CORE_NUM) != 0) {
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册