2024年4月17日发(作者:)
mtk学习开发归档02
1.
MMI 和L4通信
1.1.
如何通信
Send/Receive messages thru the message Queue.
#define OslMsgSendExtQueue msg_send_ext_queue
#define OslReceiveMsgExtQ receive_msg_ext_q
SetProtocolEventHandler(FuncCB, msg_id);
1.2.
通信数据
typedef struct ilm_struct {
oslModuleType oslSrcId; // Source module ID.
oslModuleType oslDestId; // Destination module ID.
oslMsgType oslSapId; // service access point.
oslMsgType oslMsgId; // message name ID.
oslParaType *oslDataPtr; //local parameter buffer
oslPeerParaPtr *oslPeerBuffPtr; //peer buffer pointer
} ilm_struct;
1.3.
如何从MMI Queue中侦听消息
OslReadCircularQ(&Message);
OslReceiveMsgExtQ(mmi_qid, &mmi_message);
1.4.
如何在MMI 队列中写入消息
当NVRAM接收到其他消息时:
OslWriteCircularQ(&ilm_ptr);
1.5.
如何从L4C接听消息
注册一个消息回调函数
SetProtocolEventHandler(FuncCB, msg_id);
1.6.
如何向L4C 发送消息
2.
构建一个本地参数指针
3.
将请求数据填充进本地参数指针中。
4.
给结构体ilm_struct赋值。
5.
向L4C发送消息。
消息信息 = 头信息 + 数据信息
Local parameter Header info:
#define LOCAL_PARA_HDR
kal_uint8 ref_count;
kal_uint16 msg_len;
peer buffer parameter Header info :
#define PEER_BUFF_HDR
kal_uint16 pdu_len;
kal_uint8 ref_count;
kal_uint8 pb_resvered;
kal_uint16 free_header_space;
kal_uint16 free_tail_space;
2.7. 本地参数:(local parameter)
Header info + Data info:
例如:
typedef struct {
LOCAL_PARA_HDR
kal_uint8 volume_type;
kal_uint8 volume_level;


发布评论