|
使用了emwin的存储设备后,控件不能正常显示
具体情形是这样的,在CM4F内核的MCU上移植了emWIN5.22版本。
在测试例程的时候,发现控件显示不正常。
对话框的内容:
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = { { FRAMEWIN_CreateIndirect, "Caption", 0, 0, 0, 128,128,FRAMEWIN_CF_MOVEABLE,0},
{ BUTTON_CreateIndirect, "BUTTON0", GUI_ID_BUTTON0, 10, 4, 75, 23, 0,0}, { EDIT_CreateIndirect, NULL, GUI_ID_EDIT0, 10, 33, 100,21, 0,0}
};
主程序:
Main_Task(void)
{
GUI_Init();
WM_SetCreateFlags(WM_CF_MEMDEV); /* Use memory devices on all windows to avoid flicker */
GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0);
}
在模拟器上跑是正常的,而移植到板子上跑的时候控件就不正常了,按钮不显示,对话框全变黑。
正常的图:
不正常的在板子上,不好贴
目前有两种情形:
1、注释WM_SetCreateFlags(WM_CF_MEMDEV); /* Use memory devices on all windows to avoid flicker */这一行,不开存储设备,在板子上显示正常。
2、去掉底层优化,只使用点操作的方式,显示也正常。
可以确定的是,底层优化部分的函数没问题,全部都测试过。
有一点,编译时microlib库没勾选(勾选了编译不能通过),报错:
.\bin\freertos_blinker.axf: Error: L6218E: Undefined symbol __use_two_region_memory (referred from startup_keil.o).
.\bin\freertos_blinker.axf: Error: L6218E: Undefined symbol __initial_sp (referred from entry2.o).
不知道这个现象的产生是不是跟microlib有关,PS:emwin的库来自于keil5 包中middleware中。
求大神指导啊~ |
|