如题,在fault report 里显示是usage fault->unaligned,通过异常时刻的上下文,定位到xPortPendSVHandler函数,在执行 /* Pop the core registers. */ ldmia r0!, {r4-r11, r14} /* Is the task using the FPU context? If so, pop the high vfp registers too. */ tst r14, #0x10 时出错。 之前我在回调函数_cbStatus中创建一个定时器,定时发送消息WM_NotifyParent(hIcon,WM_NOTIFICATION_RELEASED); 目的是切换界面,运行正常; 后来我把WM_NotifyParent(hIcon,WM_NOTIFICATION_RELEASED);放到按键任务里执行,就发生了上面的错误,请大神们帮忙分析一下是什么原因,谢谢!! |
问题基本解决,主要原因是emwin的多任务支持没有配置好,配置成单任务模式,并且把与gui相关对所有操作都放在GUIThread来执行,就不会发生上面的问题。其次,emwin手册里明确提到“注:请勿从用户应用程序将系统定义的通知代码发送到窗口。”,故不应该从用户程序中发送“WM_NOTIFICATION_RELEASED”