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;代表申请成功。
自己顶顶! 没搞太懂,我也正在尽力这个问题。 stm32f4 + 外部 sram 看看函数申请的是片内还是片外的RAM,看看链接脚本。默认申请应该是内部的,内部肯定不够。 emwin是可以在内部或者外部申请的,是需要定义地址,而不像UCGUI,需要定义一个数组。 1.不知道楼主用的什么M3处理器,能扩展SDRAM? 2.从楼主的代码中可以看出申请外部内存时,没有先声明数组;不知道是不是因为这个原因;只是给了一个SDRAM地址,这样处理不合理吧?会出现内存访问问题的吧 wyq200704 发表于 2014-11-29 20:30
1.不知道楼主用的什么M3处理器,能扩展SDRAM?
LPC1788fbd208 wyq200704 发表于 2014-11-29 20:32
2.从楼主的代码中可以看出申请外部内存时,没有先声明数组;不知道是不是因为这个原因;只是给了一个SDRAM ...
动态内存需要这样设置,数组就直接定义全局了,除非定义数组指针。现在不用EMWIN了,很多东西不能控制,特别是对这种资源有限的处理器。改用自己做了个小的动态内存库和GUI库了。 ST_ATMEL_NXP 发表于 2014-11-30 08:10
动态内存需要这样设置,数组就直接定义全局了,除非定义数组指针。现在不用EMWIN了,很多东西不能控制, ...
楼主自己做的GUI库,看样子楼主对GUI底层相当了解了! 顶,楼主解决没有 xkxklf_123 发表于 2014-12-13 22:58
顶,楼主解决没有
通过自己做的动态内存解决了问题,可以灵活设置动态内存的存储位置。
页:
[1]