`
tyytzy
  • 浏览: 38157 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

MMI 和L4通信【转】

 
阅读更多

1.1.       如何通信

C代码  收藏代码
  1. Send/Receive messages thru the message Queue.  
  2. #define OslMsgSendExtQueue  msg_send_ext_queue  
  3. #define OslReceiveMsgExtQ    receive_msg_ext_q  
  4. SetProtocolEventHandler(FuncCB, msg_id);  

1.2.       通信数据


C代码  收藏代码
  1. typedef struct ilm_struct {  
  2. oslModuleType oslSrcId; // Source module ID.  
  3. oslModuleType oslDestId; // Destination module ID.  
  4. oslMsgType oslSapId; // service access point.  
  5. oslMsgType oslMsgId; // message name ID.  
  6. oslParaType *oslDataPtr; //local parameter buffer  
  7. oslPeerParaPtr *oslPeerBuffPtr; //peer buffer pointer  
  8. } ilm_struct;  

1.3.       如何从MMI Queue中侦听消息

C代码  收藏代码
  1. OslReadCircularQ(&Message);  
  2. OslReceiveMsgExtQ(mmi_qid, &mmi_message);  

1.4.       如何在MMI 队列中写入消息

当NVRAM接收到其他消息时:
C代码  收藏代码
  1. OslWriteCircularQ(&ilm_ptr);  

1.5.       如何从L4C接听消息

注册一个消息回调函数
SetProtocolEventHandler(FuncCB, msg_id);
1.6.      如何向L4C 发送消息

2.        构建一个本地参数指针
3.        将请求数据填充进本地参数指针中。
4.        给结构体ilm_struct赋值。
5.        向L4C发送消息。
消息信息 = 头信息 + 数据信息
C代码  收藏代码
  1. Local parameter Header info:  
  2.  #define LOCAL_PARA_HDR \  
  3. kal_uint8 ref_count; \  
  4. kal_uint16 msg_len;  
  5. peer buffer parameter Header info :  
  6.  #define PEER_BUFF_HDR \  
  7. kal_uint16 pdu_len; \  
  8. kal_uint8 ref_count; \  
  9. kal_uint8 pb_resvered; \  
  10. kal_uint16 free_header_space; \  
  11. kal_uint16 free_tail_space;  

2.7.  本地参数:(local parameter)

Header info + Data info:
例如:
C代码  收藏代码
  1. typedef struct {  
  2. LOCAL_PARA_HDR  
  3. kal_uint8 volume_type;  
  4. kal_uint8 volume_level;  
  5. } mmi_eq_set_volume_req_struct;  

2.8.  如何创建本地参数:(动态分配内存)
C代码  收藏代码
  1. OslConstructDataPtr(sizeof(mmi_at_alarm_query_res_req_struct);  

2.9.  何时释放本地参数

当L4接收到消息并处理完成后,会自动释放参数。
C代码  收藏代码
  1. OslFreeDataPtr(sizeof(mmi_at_alarm_query_res_req_struct);  
  2. Peer buffer parameter:  
  3. Header info + Data info  
  4. Ex: typedef struct {  
  5. PEER_BUFF_HDR  
  6. void *ptr;  
  7. } mmi_example;  
分享到:
评论

相关推荐

    精通MTK嵌入式编程

    本地参数是在MMI和L4通信过程中用于传递特定上下文信息的数据结构,它们通常不跨进程传递,仅在MMI Task内部使用。 总之,精通MTK嵌入式编程意味着要深入理解MMI和L4间的通信机制,掌握硬件驱动的编写,熟悉上层...

    L4是MMI/AT和协议栈的适配层

    L4作为MMI(Man Machine Interface,人机接口)/AT(Application Terminal,应用终端)和协议栈之间的适配层,其核心作用在于提供了一个桥梁,使得高层的应用能够更加便捷地与底层的通信协议进行交互。这一层的存在...

    MMI架构和编写实例PPT

    ### MMI架构和编写实例 #### 一、MTK软件架构概览 MTK(MediaTek)作为一家全球领先的芯片设计公司,在移动通信领域拥有广泛的应用和技术积累。在介绍MMI架构之前,首先需要对MTK的整体软件架构有一个基本了解。 ...

    MTK6226平台知识归总

    本文旨在为初学者和开发者提供一个全面的理解框架,涵盖MMI(Man-Machine Interface)的整体构架、各模块功能以及与L4(Layer 4)之间的通信机制。 1. MMI的整体构架 MMI是用户界面与底层硬件通信的重要桥梁,它的...

    mmi开发事件(event)机制

    2. **协议事件**:这类事件用于底层和MMI任务之间的通信。例如,当有来电时,L4会产生INCOMING_CALL_EVENT,而MMI应用程序可能会生成CALL_ACCEPT_EVENT以响应接听电话。 3. **定时器事件**:定时器事件是由预定的...

    MTK MMI培训资料

    - **L4层**:这是MMI与协议栈之间的适配层,主要包括L4A(用于转换来自上层的原始消息为功能调用)和L4C(协调所有L4模块以服务于上层)。 - **其他关键组件**: - **ATCI**(AT Command Interpreter):负责解析AT...

    MMI Architecture.ppt

    4. **系统任务实例**:例如,System NVRAM任务、L4任务、MMI任务以及更多的任务,这些任务构成了MMI架构的基础。 二、任务结构与信息 1. **任务结构**:`sys_comp_config_tbl`和`custom_comp_config_tbl`数组中的`...

    LCDHome_MMI Platform Source Code Training

    在运行时,MMI使用操作系统的任务队列进行通信,例如MMI队列,用于处理不同任务间的消息传递。 **网络模拟器/L4NS/L4队列** 网络模拟器部分,如L4NS(L4 Network Simulator),可能涉及到L4网络协议栈,L4队列用于...

    MMI Architecture

    L4层是MMI和AT命令之间的适配层,L4A(Layer 4 Adaptation)负责将上层的原语转化为函数调用,而L4C(Layer 4 Controller)协调所有L4模块以服务于上层。ATCI(AT Command Interpreter)解析AT命令,UEM(User ...

    mtk mmi文档 mt6225

    其中,RMI(远程MMI)负责PC端与协议栈间的通信,通过AT命令进行数据交互。L4层作为MMI/AT与协议栈之间的适配层,扮演了关键的桥梁角色。L4A(Layer4 Adaptation)用于将上层发送的原始数据转换为功能调用,而L4C...

    MTK开发资料文档

    它通过定义一套API供应用层调用,实现了不同层级之间的通信和交互。 3. **UI Layer(用户界面层)**:该层包含了与用户界面相关的所有函数,负责呈现图形用户界面以及处理用户的输入操作等。 4. **MMI Queue(人机...

    MTK专题集(讲述MTK各个重要功能模块).doc

    4. **MMI Queue**:这是一个关键的通信机制,协议栈或L4层将事件写入MMI Queue,然后由MMI Task读取。这确保了事件的有序处理和传输。 5. **L4/NS Queue**:MMI Task将处理后的事件写入L4/NS Queue,供L4任务或网络...

    MTK专题集(讲述MTK各个重要功能模块)

    4. **MMI Queue** (MMI队列): 用于通信协议栈或L4层向MMI任务传递事件。事件被写入MMI队列,然后由MMI任务读取并处理。 5. **L4/NS Queue** (L4/网络模拟器队列): MMI任务将事件写入此队列,供L4任务或网络模拟器...

    MTK开发平台 手机开发实例

    ### MTK开发平台手机开发实例知识点详解 #### 标题:MTK开发平台 手机开发实例 ...通过深入理解MMI Queue、L4/NSQueue等机制,以及掌握平台提供的API和工具,开发者可以更高效地进行手机应用程序的开发。

    MTK消息分发及窗口管理

    MMI与L4层(Linux第四层)进行通信,主要通过消息队列来完成这种交互。L4层则负责对底层硬件(如处理器和驱动程序)进行抽象封装。 MMI的核心框架位于`plutommi\`目录下,主要包括消息管理和窗口管理等基本功能。这...

    精通MTK嵌入式编程.pdf

    - **如何通信**:L4层与MMI之间的通信主要依赖于MMIQueue机制,即通过特定的消息队列来传递数据和指令。 - **通信数据**:通信数据通常包含控制指令、状态信息和用户输入等。 - **侦听消息**:MMI可以通过监听...

    MTK消息分发及窗口管理机制

    MMI主要与L4层交互,而L4层则负责封装底层硬件如处理器和驱动程序等。 #### 架构层次划分 - **Software Architecture (MTK)**: MTK的整体软件架构。 - **MMI Architecture**: 具体指明MMI架构如何嵌入到MTK的软件...

    通信与网络中的基于MTK平台的短信控制远程终端实现方案

    Remote MMI允许通过AT命令进行通信,L4作为适配层,Drivers负责设备驱动,而PS/L1则涉及GSM物理层和协议栈的高层部分,如L2和L3,为应用程序提供GSM/GPRS服务。MMI作为人机交互界面,分为应用层、框架层和用户界面层...

    通信与网络中的一种基于MTK平台的短信控制远程终端系统

    Remote MMI(RMI)允许通过串口和协议栈进行通信,L4作为适配层,Drivers处理各种设备驱动,而PS/L1中的L1是GSM的物理层,直接与信号数据打交道。此外,MMI则为人机交互界面,包含文字和图形界面,分为Application ...

Global site tag (gtag.js) - Google Analytics