嵌入式——千奇百怪的问题|[解决办法]EMWIN卡住进入HardFault_Handler异常的处理

现象描述

EMWIN运行卡住,在线调试进入HardFault_Handler异常


出错原因以及解决方法 原因一:GUI_NUMBYTES设置太小
现象:
在线跟踪,若GUI_ALLOC_AssignMemory(_aMemory, GUI_NUMBYTES)中对应的_aMemory数组全部空间都有数据,那么就可以确定是此问题导致
解决办法:
GUIConf.c文件中
#define GUI_NUMBYTES1024*32//32KByte



将宏定义更改大些

原因二:分配的GUIMemory不连续

现象:

在线跟踪,若GUI_ALLOC_AssignMemory(_aMemory, GUI_NUMBYTES)中对应的_aMemory数组空间不连续,或者超出实际的RAM空间,那么就可以确定是此问题导致



解决办法:
GUIConf.c文件中
#define GUI_NUMBYTES1024*32//32KByte



将宏定义小一些,如果有多个Bank,可以用分散加载的方式定义数组


原因三:分配的GUI_BLOCKSIZE太小


解决办法:
GUIConf.c文件中
#define GUI_BLOCKSIZE 120



将宏定义大一些




原因四:分配的堆栈太小


现象:
运行一段时间,画面卡住了



解决办法:
启动文件(startup_xxxx.s)里面,将默认的Stack_Size改大

; Stack_SizeEQU0x00000200 Stack_SizeEQU0x00000400




【嵌入式——千奇百怪的问题|[解决办法]EMWIN卡住进入HardFault_Handler异常的处理】以上方案在笔者在使用EMWIN上遇到HardFault_Handler异常时候的解决办法,若有其他问题,望不吝赐教

    推荐阅读