硬汉嵌入式论坛

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

[emWin] 执行GUI_Exec();其他全局变量会被改变

[复制链接]

14

主题

37

回帖

79

积分

初级会员

积分
79
发表于 2021-4-15 16:54:17 | 显示全部楼层 |阅读模式
使用ucgui,通过在while(1)中执行GUI_Exec();  或者在定时器中执行GUI_Exec();
发生部分全局变量,运行时被改变,清零。如果屏蔽GUI_Exec(); 被改变的全局变量运行时恢复正常。

这个有遇到的吗?传授一下经验
回复

使用道具 举报

354

主题

2164

回帖

3231

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3231
发表于 2021-4-16 09:57:49 | 显示全部楼层
需要看看ucgui的缓存设置,地址和大小。是不是和常规变量冲突了。 看map文件,可以知道分配的结果。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2021-4-16 11:57:31 | 显示全部楼层
执行这个函数会执行窗口管理,执行窗口管理,就会操作到GUIConf.c文件中的动态内存,以及你使用RTOS的话,还会不断操作此任务的栈空间,看看那个溢出了。
回复

使用道具 举报

14

主题

37

回帖

79

积分

初级会员

积分
79
 楼主| 发表于 2021-4-16 13:49:09 | 显示全部楼层
eric2013 发表于 2021-4-16 11:57
执行这个函数会执行窗口管理,执行窗口管理,就会操作到GUIConf.c文件中的动态内存,以及你使用RTOS的话, ...

对的,没错。我是显示button上的bmp,理论上一张图片30k,开了20K的ram,正常都能显示。但是非GUI部分的全局变量,被溢出改变了。确实是溢出了。(20K的空间居然能正常跑30K的bmp图片。。。)
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2021-4-17 09:22:48 | 显示全部楼层
ZMLZML1009 发表于 2021-4-16 13:49
对的,没错。我是显示button上的bmp,理论上一张图片30k,开了20K的ram,正常都能显示。但是非GUI部分的 ...

找到问题就好办。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-20 08:19 , Processed in 0.224462 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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