发 帖  
原厂入驻New
为什么用内联汇编调用CPSIE退出临界态系统会被卡住?
81 MDK 中断 CMSIS 函数
分享
出问题的地方和反汇编结果如图。这个是在MDK里优化等级为Level-2时编出来的,开关中是用内联汇编调用指令
#IF OS_CRItiCAL_METHOD == 1
#define  OS_ENTER_CRITICAL()  __asm{cpsid i}
#define  OS_EXIT_CRITICAL()  __asm{cpsie i}
然后反汇编显示CPSIE被和谐了,结果就是一直一直开不了中断,系统卡住了……
另外这个在没有优化时是正常的。若不用内联汇编,用CMSIS的函数__enable_irq(),在开了优化后也是正常的
求助这是为什么
0
2019-11-11 04:35:39   评论 分享淘帖 邀请回答

相关问题

1个回答
还是尽量拥抱CMSIS吧,
2019-11-11 08:20:43 评论

举报

只有小组成员才能发言,加入小组>>

166个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表