硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1979|回复: 3
收起左侧

[emWin] 内存不够,怎么破

[复制链接]

13

主题

37

回帖

76

积分

初级会员

积分
76
发表于 2017-10-13 23:19:56 | 显示全部楼层 |阅读模式
Error: L6407E: Sections of aggregate size 0xd98 bytes could not fit into .ANY selector(s).
芯片是STM32F103VC,有EMWIN移植
调用原子的sf_WriteBuffer这个函数对25Q128写数据,由于有一个4*1024的大数组,导致内存不够。不知道怎么处理?各位大神指点迷津
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115749
QQ
发表于 2017-10-14 00:20:18 | 显示全部楼层
降低GUIConf.c文件中的emWin动态内存大小,像103VC这种,取个10KB就好了。
回复

使用道具 举报

13

主题

37

回帖

76

积分

初级会员

积分
76
 楼主| 发表于 2017-10-14 07:34:07 | 显示全部楼层
//设置EMWIN内存大小
#define GUI_NUMBYTES  (10*1024)//30
#define GUI_BLOCKSIZE 0X80  //块大小


//GUI_X_Config
//初始化的时候调用,用来设置emwin所使用的内存
void GUI_X_Config(void) {
      //使用内部RAM
   
        U32 *aMemory = mymalloc(SRAMIN,GUI_NUMBYTES); //从内部RAM中分配GUI_NUMBYTES字节的内存
        GUI_ALLOC_AssignMemory((U32 *)aMemory, GUI_NUMBYTES); //为存储管理系统分配一个存储块
        GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE); //设置存储快的平均尺寸,该区越大,可用的存储快数量越少
        GUI_SetDefaultFont(GUI_FONT_6X8); //设置默认字体
   
}
设成10K也不行
回复

使用道具 举报

13

主题

37

回帖

76

积分

初级会员

积分
76
 楼主| 发表于 2017-10-14 07:37:23 | 显示全部楼层
如果不行的话,我想不用这个数组,不用读取保存,改成只擦除和写数据,不回读数据。但是希望能用到,因为有些历史数据存的多的话这样还是方便的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-16 05:12 , Processed in 0.637506 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表