他的回复:
回复:calonyu 发表于 2020-5-7 22:35现在系统跑起来了,最终发现是由于 gcc编译器的优化等级设置不正确导致的。为了防止代码被优化,我设置的优化等级是-O0,然而正是这个导致了系统一直没正常运行起来根因是移植时使用的LiteOS版本问题。最新移植的LiteOS内核,其一些关键函数已经加上了O1优化属性。比如:arch/arm/arm-m/cortex-m4/los_sr.c:179:__attribute__((optimize("O1")))arch/arm/arm-m/src/los_hwi.c:209:__attribute__((optimize("O1")))arch/arm/arm-m/src/los_hwi.c:256:__attribute__((optimize("O1")))而我最初移植的内核是没有这三处注释的。__attribute__((optimize("O1")))修饰的分别是VOID LOS_SrIdleTaskProcess()LOS_HwiCreate(HWI_HANDLE_T uwHwiNum, HWI_PRIOR_T usHwiPrio, HWI_MODE_T usMode, HWI_PROC_FUNC pfnHandler, HWI_ARG_T uwArg) 3. LOS_HwiDelete(HWI_HANDLE_T uwHwiNum)