terencejia 发表于 2015-6-22 21:52:36

stm32f429+stemwin+cmsis_os 进入hardfault_handler

如题,在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);放到按键任务里执行,就发生了上面的错误,请大神们帮忙分析一下是什么原因,谢谢!!

jacobfeng 发表于 2015-6-22 23:54:04

支持一下

terencejia 发表于 2015-6-24 13:54:29

本帖最后由 terencejia 于 2015-6-24 14:11 编辑

问题基本解决,主要原因是emwin的多任务支持没有配置好,配置成单任务模式,并且把与gui相关对所有操作都放在GUIThread来执行,就不会发生上面的问题。其次,emwin手册里明确提到“注:请勿从用户应用程序将系统定义的通知代码发送到窗口。”,故不应该从用户程序中发送“WM_NOTIFICATION_RELEASED”

fangchangqing 发表于 2015-6-28 21:33:28

社么啊
页: [1]
查看完整版本: stm32f429+stemwin+cmsis_os 进入hardfault_handler