|
本帖最后由 FSL_TICS_ZP 于 2014-4-1 09:34 编辑
想在中断中发送数据给任务,看了MQX-lite参考手册,有个发送消息的接口很适合我,但是这个API只能用在任务之间。
_lwmsgq_init
Creates a lightweight message queue.
_lwmsgq_receive
Gets a message from a lightweight message queue.
_lwmsgq_send
Puts a message on a lightweight message queue.
其他的接口,比如信号量,事件,他们都只能通知任务,不能顺便传送数据给任务task。
更新:
_lwmsgq_send是可以在中断中使用的,之前因为我把参数输错了,导致内存访问失败。
MQX-lite的手册讲的简单,没有实例,我按照uC/OS-II的思路,讲数据直接赋给指针,直接传进_lwmsgq_send中,在这个函数中会访问穿进去的指针,比如我传0x55,内部会访问0x55的地址,这当然会导致问题发生。看了源代码后,终于了解。应该这么用:
_mqx_max_type msg;
msg = xx;
ret = _lwmsgq_send(g_uart0_rx_queue, &msg, 0);
|
|