ST_ATMEL_NXP 发表于 2012-12-7 20:45:57

emwin的存储设备的大小设置问题?

目前正在使用emwin,在他的存储器大小设置中,我想将存储设备的空间设置大一点,设置到外部SDRAM中。在几次尝试过后,通过申请内存发现,一直错误。而使用定义在SRAM的数组形式,去可以正常申请。不知道有遇到这种问题的高人吗?

设置到SDRAM中的代码:
#define GUI_NUMBYTES0xa00000// 视频缓冲预留10MB
#define GUI_BLOCKSIZE 0x40   //块大小
#define aMemory0xa0600000//视频缓冲的起始地址
下面是设置代码
GUI_ALLOC_AssignMemory((void *)aMemory, GUI_NUMBYTES);
GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);
下面是测试代码
GUI_Init();
hMem = GUI_MEMDEV_Create(1,1,2,2);此处一直返回0;代表申请失败。

设置到SRAM内部的代码:
#define GUI_NUMBYTES45000// 视频缓冲预留45k
#define GUI_BLOCKSIZE 0x40   //块大小
unsigned int aMemory;//视频缓冲的起始地址
下面是设置代码
GUI_ALLOC_AssignMemory((void *)aMemory, GUI_NUMBYTES);
GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);
下面是测试代码
GUI_Init();
hMem = GUI_MEMDEV_Create(1,1,2,2);此处一直返回0x00000004;代表申请成功。

ST_ATMEL_NXP 发表于 2012-12-7 22:05:47

自己顶顶!

richards 发表于 2013-1-25 17:00:32

没搞太懂,我也正在尽力这个问题。 stm32f4 + 外部 sram

robin45853258 发表于 2013-3-18 18:59:59

看看函数申请的是片内还是片外的RAM,看看链接脚本。默认申请应该是内部的,内部肯定不够。

ST_ATMEL_NXP 发表于 2013-3-19 08:22:40

emwin是可以在内部或者外部申请的,是需要定义地址,而不像UCGUI,需要定义一个数组。

wyq200704 发表于 2014-11-29 20:30:41

1.不知道楼主用的什么M3处理器,能扩展SDRAM?

wyq200704 发表于 2014-11-29 20:32:35

2.从楼主的代码中可以看出申请外部内存时,没有先声明数组;不知道是不是因为这个原因;只是给了一个SDRAM地址,这样处理不合理吧?会出现内存访问问题的吧

ST_ATMEL_NXP 发表于 2014-11-30 08:09:21

wyq200704 发表于 2014-11-29 20:30
1.不知道楼主用的什么M3处理器,能扩展SDRAM?

LPC1788fbd208

ST_ATMEL_NXP 发表于 2014-11-30 08:10:46

wyq200704 发表于 2014-11-29 20:32
2.从楼主的代码中可以看出申请外部内存时,没有先声明数组;不知道是不是因为这个原因;只是给了一个SDRAM ...

动态内存需要这样设置,数组就直接定义全局了,除非定义数组指针。现在不用EMWIN了,很多东西不能控制,特别是对这种资源有限的处理器。改用自己做了个小的动态内存库和GUI库了。

wyq200704 发表于 2014-12-1 20:31:17

ST_ATMEL_NXP 发表于 2014-11-30 08:10
动态内存需要这样设置,数组就直接定义全局了,除非定义数组指针。现在不用EMWIN了,很多东西不能控制, ...

楼主自己做的GUI库,看样子楼主对GUI底层相当了解了!

xkxklf_123 发表于 2014-12-13 22:58:38

顶,楼主解决没有

ST_ATMEL_NXP 发表于 2014-12-15 08:32:33

xkxklf_123 发表于 2014-12-13 22:58
顶,楼主解决没有

通过自己做的动态内存解决了问题,可以灵活设置动态内存的存储位置。
页: [1]
查看完整版本: emwin的存储设备的大小设置问题?