看例程里面,只有对message的allocate,和发送,为什么没有见到对message的内容进行定义的过程?
例如:core0需要把一个数组发送给core1,使用msgQ的情况下,需要用这个数组来初始化heap中的message吗?
littleWhite:
有专家帮我解决下吗,谢谢了!
yaohui wang1:
回复 littleWhite:
typedef struct{
MessageQ_MsgHeader header;
……
your defines
……
}Mymsg
littleWhite:
回复 yaohui wang1:
请问之后是这样操作吗:
typedef Mymsg *MessageQ_Msg;
MessageQ_Msg msg;
msg = MessageQ_alloc (HEAP_ID, SIZE_OF_MY_MESSAGE);
msg->my_define = 123;
MessageQ_put(QueueId, msg);
yaohui wang1:
回复 littleWhite:
这样做应该没有问题
yaohui wang1:
回复 littleWhite:
我试了一下 这样想要编译通过 需要去修改头文件中结构体的定义
代价比较大
最好还是用Ti原来的MessageQ_Msg msg;
在堆中申请空间的时候 alloc(sizeof(MyMsg));
强制类型转换一下 (MyMsg*)msg
GJ Z:
回复 yaohui wang1:
你好,有个问题想向大家请教OMAP-L138的ARM内核和DSP内核MSGQ通信问题。
我想使用MSGQ使ARM内核(运行Linux系统)传输一些函数参数(例如 )给DSP端,DSP端根据传消息的内容判断所要执行的函数。然后DSP运行相关函数,进行对外设的控制。
由于会有好多函数,我想通过建立几个自定义的结构体,两者传输结构体。这样处理起来会比较方便。 我有以下问题,还请指教:
1.这种传输结构体的方法可行吗?
2.由于每个结构体的成员不一样,接收的时候如何判断是哪个结构体呢?
3.上面说的 强制类型转换一下 (MyMsg*)msg 对自定义结构体成员变量的类型有没有什么限制?