硬汉嵌入式论坛

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

stm32h7,emwin内存的使用问题

[复制链接]

1

主题

12

回帖

15

积分

新手上路

积分
15
发表于 2025-3-11 19:04:42 | 显示全部楼层 |阅读模式
本帖最后由 yuyu51 于 2025-3-11 19:07 编辑

奇怪的问题  以下三张图片是点击顺序(点击的是Measure),
微信图片_20250311123150.jpg 微信图片_20250311123201.jpg 微信图片_20250311123208.jpg
联想截图_20250311122515.png
联想截图_20250311122521.png
联想截图_20250311122530.png
用这个函数查看内存剩余        GetNumFreeBytes=GUI_ALLOC_GetNumFreeBytes();     
出现一个奇怪问题,每切换一个窗口,内存就增加大约  0x700000B(7MB),我猜测最后因内存不足 HardFault 了,
每次切窗口就申请一部分内存,这很奇怪, 求求给一些建议。


回复

使用道具 举报

354

主题

2162

回帖

3229

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3229
发表于 2025-3-13 10:06:39 | 显示全部楼层
本帖最后由 caicaptain2 于 2025-3-13 10:10 编辑

这叫内存泄露,应该是代码有问题,同一个窗口创建了多次,但是没有对应次数的delete。 有个笨办法。所有窗口只在界面初始化创建一次,永远不删除。切换窗口时,只是使用窗口的hide、show、bringtotop相关函数来处理,这样就不会不断的增加内存占用。

然后,再选择一个常用的小窗口,比如“确认、取消窗口”进行动态创建和删除,同时观察内存占用情况,逐步把握内存泄露的关键点代码。熟练后,可以把其他窗口也参照处理。
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2025-3-14 15:41:35 | 显示全部楼层
caicaptain2 发表于 2025-3-13 10:06
这叫内存泄露,应该是代码有问题,同一个窗口创建了多次,但是没有对应次数的delete。 有个笨办法。所有窗 ...

感谢大佬回复,应该是我当时哪里没移植好,我将文件的emwin和freertos重新移植,问题就解决了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 22:53 , Processed in 0.421131 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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