UCGUI移植成功后,使用GUIDEMO_main()就会提示no space

2019-07-20 22:29发布

.OLED.axf: Error: L6406E: No space in execution regions with .ANY selector matching guidemo_wm.o(.data).
.OLED.axf: Error: L6406E: No space in execution regions with .ANY selector matching strcat.o(.text).
.OLED.axf: Error: L6406E: No space in execution regions with .ANY selector matching basic.o(x$fpl$basic).
.OLED.axf: Error: L6406E: No space in execution regions with .ANY selector matching dcmpi.o(x$fpl$dcmpinf).
.OLED.axf: Error: L6406E: No space in execution regions with .ANY selector matching fabs.o(i.fabs).
.OLED.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui__strlen.o(.text).
.OLED.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui_getstringdistx.o(.text).

配置如下:



[mw_shl_code=applescript,true]#ifndef GUICONF_H
#define GUICONF_H

#define GUI_OS                    (1)  /* Compile with multitasking support */
#define GUI_MAX_TASK              (5)
#define GUI_SUPPORT_TOUCH         (0)  /* Support a touch screen (req. win-manager) */
#define GUI_SUPPORT_MOUSE         (0)  /* Support a mouse */
#define GUI_SUPPORT_UNICODE       (0)  /* Support mixed ASCII/UNICODE strings */

#define GUI_DEFAULT_FONT          &GUI_FontD32
#define GUI_ALLOC_SIZE            12020  /* Size of dynamic memory ... For WM and memory devices*/

/*********************************************************************
*
*         Configuration of available packages
*/
#define GUI_WINSUPPORT            1  /* Window manager package available */
#define GUI_SUPPORT_MEMDEV        1  /* Memory devices available */
#define GUI_SUPPORT_AA            0  /* Anti aliasing available */
#endif  /* Avoid multiple inclusion */

[/mw_shl_code]




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
stayhungry
1楼-- · 2019-07-21 00:49
我用EMWIN时候遇到过,我那时候将MALLOC.h里面的MEM1_MAX_SIZE的100改小,直到不报错就行了~

#define MEM1_BLOCK_SIZE                        32                                                            //内存块大小为32字节
#define MEM1_MAX_SIZE                        100*1024                                                  //最大管理内存 100K
#define MEM1_ALLOC_TABLE_SIZE        MEM1_MAX_SIZE/MEM1_BLOCK_SIZE         //内存表大小

例如:

#define MEM1_BLOCK_SIZE                        32                                                            //内存块大小为32字节
#define MEM1_MAX_SIZE                        60*1024                                                  //最大管理内存 100K
#define MEM1_ALLOC_TABLE_SIZE        MEM1_MAX_SIZE/MEM1_BLOCK_SIZE         //内存表大小

改成这样
来俩不甜的
2楼-- · 2019-07-21 04:47
 精彩回答 2  元偷偷看……
gangzilife
3楼-- · 2019-07-21 08:31
看着好像是内存溢出,如果用的是MDK,修改启动文件的stack空间大小或者是heap空间大小,取决于你的内存分配方式,一般是修改stack,如果是IAR,请修改ICF文件,原理和MDK一致
zdfwyh
4楼-- · 2019-07-21 13:45
 精彩回答 2  元偷偷看……
qiancheng2014
5楼-- · 2019-07-21 13:57
谢谢各位,的确是RAM太小导致的,已经把MALLOC函数内存池变小了。。。。编译通过了。

一周热门 更多>