[解决办法]EMWIN卡住进入HardFault_Handler异常的处理

现象描述

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


出错原因以及解决方法

原因一:GUI_NUMBYTES设置太小

现象:

在线跟踪,若GUI_ALLOC_AssignMemory(_aMemory, GUI_NUMBYTES)中对应的_aMemory数组全部空间都有数据,那么就可以确定是此问题导致

解决办法:

GUIConf.c文件中 

#define GUI_NUMBYTES  1024*32    //32KByte


将宏定义更改大些

原因二:分配的GUIMemory不连续

现象:

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

解决办法:

GUIConf.c文件中 

#define GUI_NUMBYTES  1024*32    //32KByte


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

原因三:分配的GUI_BLOCKSIZE太小

解决办法:

GUIConf.c文件中 

#define GUI_BLOCKSIZE 120


将宏定义大一些


原因四:分配的堆栈太小

现象:

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

解决办法:

启动文件(startup_xxxx.s)里面,将默认的Stack_Size改大

;Stack_Size      EQU     0x00000200
Stack_Size      EQU     0x00000400


以上方案在笔者在使用EMWIN上遇到HardFault_Handler异常时候的解决办法,若有其他问题,望不吝赐教

你可能感兴趣的:(嵌入式——千奇百怪的问题,EMWIN,液晶屏,卡住)