tencent@qq.com 发表于 2012-8-2 22:38

UCOS 建立邮箱导致程序发生错误

各位大侠,我之前用ucos写了一个实时时钟显示的程序,可以完美执行,但是后来我在此程序的基础上新建了一个OS_EVENT* Com1_MBOX邮箱,编译通过下到板子里就发现程序不能执行,要么死在那里,要么龟速的进行。我发现就只是定义一个OS_EVENT* Com1_MBOX ,不去用它都会导致程序运行错误,求真相,谢谢!

llf021421 发表于 2012-8-3 11:26

你这种情况很奇怪,看一看是否OS_MBOX_EN是否设为1,不知道你在线调试没,可以看一下在哪个语句出现了错误!

tencent@qq.com 发表于 2012-8-3 15:19

2# llf021421
谢谢你的回答。我看了一下,OS_MBOX_EN是使能了的,我发现
OS_EVENT* Clock_SEM;      这个信号量是可以正常使用的
//OS_EVENT* Com1_MBOX;把这个邮箱相关的东西都禁掉后系统就正常了,



还有就是再新建一个任务也会出现死掉的情况,菜鸟伤不起啊

tencent@qq.com 发表于 2012-8-3 15:37

2# llf021421
我调试看了下,程序是死在HardFaultException 这里了 不知道是什么原因

llf021421 发表于 2012-8-3 17:43

你检查一下是不是这个原因,在Com1_MBOX这个变量初始化之前,是否任务,或中断函数里,使用了这个邮箱。这样就造成邮箱还没有赋值,就可以调用其Pend,Post函数的错误。
我以前犯过这样的错误

tencent@qq.com 发表于 2012-8-4 20:49

问题解决了,换了个KEIL版本,然后修改了一些局部变量定义等一些小错误,就好了,
页: [1]
查看完整版本: UCOS 建立邮箱导致程序发生错误