硬汉嵌入式论坛

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

[emWin] 求助,多任务调用emWin问题

[复制链接]

1

主题

5

回帖

1

积分

新手上路

积分
1
发表于 2015-8-3 20:11:34 | 显示全部楼层 |阅读模式
大家好,请教大家一个问题:
        我用emWin和ucos2做了一个项目,使用多任务调用emWin,其中一个任务emwin_task()调用GUI_Exec()函数进行刷新,这个任务只负责刷新,不处理其他业务,后来发现出现死机问题,调试发现是程序卡在了GUI_Exec()这个函数里面无法返回,后来通过调试窗口发现程序在WM_Exec(),GUI_ALLOC_LockH(),GUI_ALLOC_UnlockH(),GUI_ALLOC_h2p()这几个函数之间乱跳,但他们是emwin的库函数,无法看见源码,但上网查看相关资料后发现这几个函数应该是与内存管理相关的函数,所以就怀疑死机是由于内存或多任务调用emwin时的资源保护相关,于是就把分配给emwin的内存增加,同时通过ucos的信号量实现GUI_X_LOCK()和GUI_X_UNLOCK()函数,可是问题仍然没有解决,希望大家给予帮助,谢谢!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115694
QQ
发表于 2015-8-3 21:48:23 | 显示全部楼层
建议楼主不要使用emWin的多任务,多任务出问题了不好解决。
回复

使用道具 举报

1

主题

5

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2015-8-3 22:12:14 | 显示全部楼层
已经使用了,项目有点大,现在再改,已经改不动了,涉及的东西比较多,请问您遇到过这样的问题吗?怎么解决?谢谢!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115694
QQ
发表于 2015-8-3 23:07:10 | 显示全部楼层
前两天一个网友也是使用的多任务方式,http://www.armbbs.cn/forum.php?mod=viewthread&tid=11901

我一般很少使用多任务方式,明天看看其他网友有什么建议不。
回复

使用道具 举报

1

主题

5

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2015-8-4 18:33:29 | 显示全部楼层
谢谢您的回复,今天又调试了下程序,可能是由于在一个任务中频繁调用WM_InvalidataWindow()函数所致,今天又发现WM_Paint()这个函数也引起了死机现象,会不会是WM_Paint()与另一个刷新任务中调用GUI_Exec()有关呢?
回复

使用道具 举报

1

主题

5

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2015-8-4 18:47:17 | 显示全部楼层

回 eric2013 的帖子

eric2013:前两天一个网友也是使用的多任务方式,http://www.armbbs.cn/forum.php?mod=viewthread&tid=11901

我一般很少使用多任务方式,明天看看其他网友有什么建议不。 (2015-08-03 23:07) 
谢谢您的回复,今天又调试了下程序,可能是由于在一个任务中频繁调用WM_InvalidataWindow()函数所致,今天又发现WM_Paint()这个函数也引起了死机现象,会不会是WM_Paint()与另一个刷新任务中调用GUI_Exec()有关呢?还有请问论坛里有介绍VNC的使用吗?谢谢。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115694
QQ
发表于 2015-8-5 09:20:03 | 显示全部楼层

回 sondombi 的帖子

sondombi:谢谢您的回复,今天又调试了下程序,可能是由于在一个任务中频繁调用WM_InvalidataWindow()函数所致,今天又发现WM_Paint()这个函数也引起了死机现象,会不会是WM_Paint()与另一个刷新任务中调用GUI_Exec()有关呢?还有请问论坛里有介绍VNC的使用吗?谢谢。 (2015-08-04 18:47) 
曾经做过,后来没有搞出来就没有做了,可以参考下ST探索版里面做的。
回复

使用道具 举报

5

主题

69

回帖

5

积分

初级会员

积分
5
发表于 2015-8-7 15:49:54 | 显示全部楼层
LZ的既然是大项目,说明之前是正常工作了的,比对一下现在的版本和之前的哪里不一样,再定位看看能不能找到原因,
回复

使用道具 举报

6

主题

32

回帖

6

积分

新手上路

积分
6
发表于 2015-8-12 12:10:51 | 显示全部楼层
多任务是OK的,emwin 就是加入了多任务的特性,但是我不能准确定位你的错误,你提供的信息不足,所以 Hard to help you...

请参考 keil 里下面的 multi-task 的例子,一般来讲,多任务刷ui确实是不提倡的,但是多屏和多层的时候,那就很有必要了,就像我现在做的这个项目 一样。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-13 05:01 , Processed in 0.289216 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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