硬汉嵌入式论坛

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

[emWin] 在线求救(关于存储设备问题)

[复制链接]

14

主题

55

回帖

14

积分

初级会员

积分
14
发表于 2014-8-11 15:50:21 | 显示全部楼层 |阅读模式
把用官方的那个地平仪的例子加入到自己的工程中,单独给地平仪建了一个窗口,第一次进去是可以的,退出那个窗口后再进去就不行了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2014-8-11 17:47:42 | 显示全部楼层
实时监测,是不是动态内存不够了。我估计是你退出的时候没有完全关闭并释放内存。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2014-8-11 17:50:31 | 显示全部楼层
用这个函数实时监测动态内存的余量:GUI_ALLOC_GetNumUsedBytes()
回复

使用道具 举报

14

主题

55

回帖

14

积分

初级会员

积分
14
 楼主| 发表于 2014-8-11 17:56:39 | 显示全部楼层
在模拟器上做的也会有动态内存不够的问题吗,我刚接触这个内存设备。搞不懂啊,求大神指导。
回复

使用道具 举报

14

主题

55

回帖

14

积分

初级会员

积分
14
 楼主| 发表于 2014-8-11 17:57:10 | 显示全部楼层

回 eric2013 的帖子

eric2013:用这个函数实时监测动态内存的余量:GUI_ALLOC_GetNumUsedBytes() (2014-08-11 17:50)
在模拟器上做的也会有动态内存不够的问题吗,我刚接触这个内存设备。搞不懂啊,求大神指导。
回复

使用道具 举报

14

主题

55

回帖

14

积分

初级会员

积分
14
 楼主| 发表于 2014-8-11 18:00:49 | 显示全部楼层

回 eric2013 的帖子

eric2013:实时监测,是不是动态内存不够了。我估计是你退出的时候没有完全关闭并释放内存。 (2014-08-11 17:47)
GUI_MEMDEV_Delete只要调这个函数就可以关闭啦?
回复

使用道具 举报

38

主题

136

回帖

40

积分

初级会员

积分
40
发表于 2014-8-12 16:03:50 | 显示全部楼层
模拟器也有内存问题,你看GUIConf.C文件内存分配的大小。
回复

使用道具 举报

14

主题

55

回帖

14

积分

初级会员

积分
14
 楼主| 发表于 2014-8-13 17:47:02 | 显示全部楼层

回 szu_lsh 的帖子

szu_lsh:模拟器也有内存问题,你看GUIConf.C文件内存分配的大小。 (2014-08-12 16:03)
现在可以了,是因为用了高分辨率坐标,退出地平仪界面后就没有失能高分辨率坐标,导致第二次进去的时候坐标变了。但是现在还有一个问题,就是第一次进入是可以完整的显示地平仪,第二次进去不能完整的显示了,只能显示一半。问题好像是存储设备初始化那,我只初始化一次,退出地平仪界面不删掉所申请的存储设备,然后第二次进去地平仪界面是可以完全显示。但是这样做就会一直耗着内存。有什么办法没?
回复

使用道具 举报

38

主题

136

回帖

40

积分

初级会员

积分
40
发表于 2014-8-13 18:18:47 | 显示全部楼层

回 mbyml 的帖子

mbyml:现在可以了,是因为用了高分辨率坐标,退出地平仪界面后就没有失能高分辨率坐标,导致第二次进去的时候坐标变了。但是现在还有一个问题,就是第一次进入是可以完整的显示地平仪,第二次进去不能完整的显示了,只能显示一半。问题好像是存储设备初始化那,我只初始化一次,退出地 .. (2014-08-13 17:47) 
保证不要重复的创建内存。
回复

使用道具 举报

14

主题

55

回帖

14

积分

初级会员

积分
14
 楼主| 发表于 2014-8-14 09:16:03 | 显示全部楼层

回 szu_lsh 的帖子

szu_lsh:保证不要重复的创建内存。 (2014-08-13 18:18)
什么意思?退出创建了存储设备的窗口并删掉了所有的存储设备句柄。然后再进去此窗口重建存储设备不行吗?那要怎么做?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2014-8-14 11:54:24 | 显示全部楼层

回 mbyml 的帖子

mbyml:什么意思?退出创建了存储设备的窗口并删掉了所有的存储设备句柄。然后再进去此窗口重建存储设备不行吗?那要怎么做? (2014-08-14 09:16) 
可以的,这样就可以了。
回复

使用道具 举报

14

主题

55

回帖

14

积分

初级会员

积分
14
 楼主| 发表于 2014-8-14 14:28:24 | 显示全部楼层

回 eric2013 的帖子

eric2013:可以的,这样就可以了。 (2014-08-14 11:54)
删除后再重新进的话,存储设备显示不完整。如果不删除是存储设备句柄退出窗口,然后再进此窗口是可以完整显示,但是这样太占资源了吧,存储设备一直存在。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2014-8-14 18:48:15 | 显示全部楼层

回 mbyml 的帖子

mbyml:删除后再重新进的话,存储设备显示不完整。如果不删除是存储设备句柄退出窗口,然后再进此窗口是可以完整显示,但是这样太占资源了吧,存储设备一直存在。 (2014-08-14 14:28) 
查询下删除前后emWin动态内存的大小变化。
回复

使用道具 举报

14

主题

55

回帖

14

积分

初级会员

积分
14
 楼主| 发表于 2014-9-25 10:13:26 | 显示全部楼层

回 eric2013 的帖子

eric2013:查询下删除前后emWin动态内存的大小变化。 (2014-08-14 18:48)
之前一直丢那没管了,现在查了下删除后动态内存变化大小就是分配的内存设备占的空间。现在有个问题就是把这个地平仪在背景窗口上画出来让它动起来(假如这个窗口是A),如果按了一个按键就返回到另一个窗口B(窗口A、B都是背景窗口,只是回调函数不同)。第一次从B进到A可以正常显示,第二次进入是就只能显示部分地平仪。如果从B窗口第一次进入A窗口时创建一次内存设备,以后从B到A都不创建,从A返回到B也不删除那几个内存设备(就是让那几个内存设备一直存在),再从B进入A可正常显示,但是只能在AB窗口来回显示20次,坐标就乱了。这什么情况,大神求助
回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
发表于 2015-1-15 19:52:38 | 显示全部楼层
请问地平仪那个例子的文件名是什么呢?
回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
发表于 2015-1-15 19:53:19 | 显示全部楼层
请问地平仪那个例子的文件名是什么呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2015-1-16 21:16:50 | 显示全部楼层

回 armsun 的帖子

armsun:请问地平仪那个例子的文件名是什么呢? (2015-01-15 19:53) 
https://forum.anfulai.cn/forum.p ... 473&fpage=3
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-14 05:22 , Processed in 0.048909 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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