打印
[ZLG-ARM]

[求助]使用uC/OS,低优先级任务无法向高优先级传递消息邮箱

[复制链接]
3051|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
snow863|  楼主 | 2008-3-28 11:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    我在使用 “ZLG_GUI在uC_OS的使用例子_EasyARM2200”,inChipFlash运行程序(非调试状态),将按键进程的优先级调高于液晶显示的优先级时,按键进程就无法把按键信息通过邮箱传递出去。

    并且,我实验过,只要是低优先级进程向高优先级进程传递消息,在inchip运行就不行,exram调试时则无问题。

    我使用该操作系统已经有一段时间,用很多方法尝试却无法解决,现请各位工程师不吝赐教!非常感谢! 

相关帖子

沙发
zlgarm| | 2008-3-28 11:26 | 只看该作者

EasyARM2200

snow863 您好!
    EasyARM2200配套的CPU PACK为LPC22X0系列,内部没有Flash,就不能选择DebugInChipFlash,只能选择其他选择。
                     On duty zlgarm_lijintao

使用特权

评论回复
板凳
snow863|  楼主 | 2008-3-28 12:06 | 只看该作者

谢谢zlgarm_lijintao的回复。

    我用的是LPC2214才出现这种情况的,盼望您继续提供帮助。

使用特权

评论回复
地板
zlgarm| | 2008-3-28 13:33 | 只看该作者

BANK_SET

snow863 您好!
     如果您是在内部Flash调试,外部BANK_SET跳线应设置为Bank-Ram,Bank-Flash。
                     On duty zlgarm_lijintao

使用特权

评论回复
5
snow863|  楼主 | 2008-3-28 14:01 | 只看该作者

非常感谢您的忠告

    我的问题是“在inchip运行程序时,低优先级进程无法向高优先级进程传递消息邮箱”。
    另外,您可以对与我的基础知识有信心。不才,使用该操作系统和贵公司的开发板都已经有1年多了。不会犯这样的错误的。
    期待您的回复,解决我的具体问题。我认为,该问题是一个很有技术含量的问题。再次感谢您!

使用特权

评论回复
6
zlgarm| | 2008-3-29 12:16 | 只看该作者

snow863,您好!

您能否从以下几方面进行排查:
1、查看信号量的个数是否超过设定值;
2、信号量及所有变量是否都有初始化;
3、是否是野指针所导致;
4、任务堆栈是否溢出。

                                                                                                                      By: zlgarm_Zhangxiaomeng

使用特权

评论回复
7
zddpy| | 2008-3-30 21:57 | 只看该作者

路过,顺便问一下

下面两方面排查,如何具体操作:

3、是否是野指针所导致;
4、任务堆栈是否溢出

使用特权

评论回复
8
snow863|  楼主 | 2008-3-31 09:42 | 只看该作者

谢谢zlgarm_Zhangxiaomeng

非常感谢,我用的是消息邮箱,haha。
1.邮箱使用个数没有超过设定值;
2.确定所有使用的事件都初始化了;
4.堆栈设定到原来的数十倍也未解决,问题应该不会出在这。
3.野指针,应该不会,除了操作系统需要的,这个例程里基本没有其它指针了。

我只对例程“ZLG_GUI在uC_OS的使用例子_EasyARM2200”只做了以下改动:
1.将显示进程的优先级3改为1,按键进程优先级2不便(这样按键的优先级低于显示进程);
2.此时片内片外调试都无问题,但到片内单独运行,邮箱发数据时,程序就停止了。

我用自己编的程序试,也是这样。问题是:高低优先级的任务之间,不能相互传递邮箱,只能由高到低。

谢谢您Zhangxiaomeng。

使用特权

评论回复
9
snow863|  楼主 | 2008-4-1 09:21 | 只看该作者

回答zddpy的问题4

tip: 
    uC提供了一个堆栈检验函数OSTaskStkChk(),要详细了解的话我可以把电子书传给你。谢谢您的支持!

使用特权

评论回复
10
yuzhuju| | 2008-4-1 17:27 | 只看该作者

个人觉得这个帖子是有质量的.

顺便顶一下.

使用特权

评论回复
11
lhzw2001| | 2008-4-1 17:56 | 只看该作者

期待...

使用特权

评论回复
12
ZorroCN| | 2008-4-2 13:37 | 只看该作者

某也想要知道

使用特权

评论回复
13
lhzw2001| | 2008-4-9 19:25 | 只看该作者

那就顶起来!!!!!!

使用特权

评论回复
14
wlsui| | 2008-4-9 20:33 | 只看该作者

可以比较下在Flash和在RAM中调试的模板有什么不一样

分散加载文件,如FLASH的分散加载文件有无问题

使用特权

评论回复
15
snow863|  楼主 | 2008-4-10 09:44 | 只看该作者

谢谢各位的支持

    分散加载我研究过几天,参考了Lpc2100的模板,未能解决问题。
    耽误了几天时间,现在我暂时用全局变量代替邮箱。也欢迎联系我的Email: ucos@yahoo.cn 谢谢!

使用特权

评论回复
16
lhzw2001| | 2008-4-10 20:18 | 只看该作者

下个VC下的ucos仿真试试....

使用特权

评论回复
17
lhzw2001| | 2008-4-14 11:34 | 只看该作者

?

 ?

使用特权

评论回复
18
snow863|  楼主 | 2008-4-16 16:14 | 只看该作者

谢谢lhzw2001

正在做些测试,有眉目的时候和大家探讨。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

12

帖子

1

粉丝