suzhenyu2002 发表于 2011-2-21 12:01:07

用邮箱发送消息的问题,请大虾们指教

我现在用RTT建立两个任务,其中任务1发送邮箱,任务2接收邮箱,用以传递消息,可是任务1发送消息后,任务2开始接收消息并调用rt_mb_recv函数,当程序执行到“++mb->out_offset;”时,程序就会跳转到“MRS   r0, psp; get fault thread stack pointer”;这个让我不是太清楚了,mb->out_offset就是加1,为何会提示获取栈指针出错?请各位老大们指点一二!!

aozima 发表于 2011-2-21 12:05:10

可能指针变量没有分配地址,此时mb的值是多少?

wgjwgj 发表于 2011-2-21 12:21:45

神啊,我以为是ucos呢,跑进来一看,原来是这个系统,没用过,飘过。

suzhenyu2002 发表于 2011-2-21 13:52:02

因为我看ucos的应用中有使用邮箱传输数据,而我要传送的数据也只有4个字节,所以rt_mb_recv (rt_mailbox_t mb, rt_uint32_t* value, rt_int32_t timeout)中value变量放置的是要传送的数据变量的地址,

rt_mailbox_t Charge_Message_MB=RT_NULL;

Charge_Message_MB       =        rt_mb_create("Charge_Message_MB",1,RT_IPC_FLAG_FIFO);

任务1:

uint32 BAT_Message;
rt_mb_send(Charge_Message_MB,BAT_Message);

任务2:
uint32 charge_current=0;
rt_mb_recv(Charge_Message_MB,&charge_current,RT_WAITING_FOREVER);

itspy 发表于 2011-2-21 18:21:31

跑飞了就会hard fault
教程里有一个关于使用邮箱的例程,你可以对照着看看。

ffxz 发表于 2011-2-21 21:18:28

你是进入fault了吧
页: [1]
查看完整版本: 用邮箱发送消息的问题,请大虾们指教