硬汉嵌入式论坛

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

[emWin] MULTIPAGE控件添加标签图片的问题

[复制链接]

58

主题

267

回帖

446

积分

高级会员

积分
446
发表于 2019-9-20 15:29:40 | 显示全部楼层 |阅读模式
使用MULTIPAGE控件时,通过函数MULTIPAGE_SetBitmap函数在标签上显示图片后,不停地切进切出(删除和创建)该MULTIPAGE页面,一段时间后就会刷新越来越慢,有些控件开始显示不出来(应该是内存慢慢被吃掉了,内存小的情况下很快就出现了)。
但是不给标签页设置图片时,不会有越来越慢和内存不够的情况。

有谁碰到过这个问题没有,不知道是不是emWin的BUG,没有释放引用图片时所分配的内存。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117619
QQ
发表于 2019-9-20 18:57:51 | 显示全部楼层
这个使用emWin动态内存剩余函数差下就行,看看是不是在不断的减小。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117619
QQ
发表于 2019-9-20 18:59:40 | 显示全部楼层
QQ截图20190920185922.jpg
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
 楼主| 发表于 2019-9-23 09:44:39 | 显示全部楼层

试过了,当在MULTIPAGE的标签页上面插入图片时,删除界面,再创建一次,剩余的显存空间就变小了。而不插入图片时,剩余空间一直不变。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117619
QQ
发表于 2019-9-23 18:10:47 | 显示全部楼层
ihavedone 发表于 2019-9-23 09:44
试过了,当在MULTIPAGE的标签页上面插入图片时,删除界面,再创建一次,剩余的显存空间就变小了。而不插 ...

这个是否一直持续减小,多操作几次看看
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
 楼主| 发表于 2019-9-24 09:28:03 | 显示全部楼层
eric2013 发表于 2019-9-23 18:10
这个是否一直持续减小,多操作几次看看

是一直减小,设置图片的时候操作了七八次,除了第二次比第一次空闲内存还多出来64字节,后面就一直减小,每次减小几十个到200多个不等。不设置图片的时候操作了六次,第二次比第一次空闲内存多出来180多字节,后面每次操作剩余内存都不变。   是不是emWin在这里有个BUG。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117619
QQ
发表于 2019-9-24 10:48:31 | 显示全部楼层
ihavedone 发表于 2019-9-24 09:28
是一直减小,设置图片的时候操作了七八次,除了第二次比第一次空闲内存还多出来64字节,后面就一直减小, ...

上程序看下。

还真有可能是个bug,另外升级到最新的5.50试试。
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
 楼主| 发表于 2019-9-24 11:19:19 | 显示全部楼层
代码:static void _cbInit(WM_MESSAGE* pMsg)
{
    WM_HWIN hItem;

    hItem = WM_GetDialogItem(hWin, ID_MULTIPAGE_0);
    MULTIPAGE_AddEmptyPage(hItem, 0, "");
    MULTIPAGE_AddEmptyPage(hItem, 0, "");
    MULTIPAGE_SetBitmap(hItem, &bmp1, 0, MULTIPAGE_BI_SELECTED);
    MULTIPAGE_SetBitmap(hItem, &bmp1, 0, MULTIPAGE_BI_UNSELECTED);    MULTIPAGE_SetBitmap(hItem, &bmp2, 1, MULTIPAGE_BI_SELECTED);
    MULTIPAGE_SetBitmap(hItem, &bmp2, 1, MULTIPAGE_BI_UNSELECTED);
}

我们代码加密了,复制粘贴不过来,上面是重新敲了一遍MULTIPAGE部分的初始化。
把下面四行设置图片的代码注释掉就不会有问题,不注释的话,多次切换代码空闲内存就会越来越少。
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
 楼主| 发表于 2019-9-24 11:20:20 | 显示全部楼层
eric2013 发表于 2019-9-24 10:48
上程序看下。

还真有可能是个bug,另外升级到最新的5.50试试。

对了,emWin用的是5.32,因为是103单片机,5.44的版本下没有看到CM3的库文件。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117619
QQ
发表于 2019-9-24 18:33:12 | 显示全部楼层
ihavedone 发表于 2019-9-24 11:20
对了,emWin用的是5.32,因为是103单片机,5.44的版本下没有看到CM3的库文件。

MDK安装目录有最新版的5,50,你测试下看看:

最新版emWin5.50的单片机版软件包已经可以下载
https://forum.anfulai.cn/forum.p ... 4491&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
 楼主| 发表于 2019-9-25 10:34:01 | 显示全部楼层
eric2013 发表于 2019-9-24 18:33
MDK安装目录有最新版的5,50,你测试下看看:

最新版emWin5.50的单片机版软件包已经可以下载

项目比较急,我暂时换了一种实现方法。MULTIPAGE这个问题先放在这里,有空了我试试更高版本。到时候把结果放上来。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-18 22:17 , Processed in 0.063512 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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