/***************************************************************************** Prototype : OM_CAgentMsgProc Description : 处理来自CCPU AGENT的消息. Input : pMsg -- The pointer of the msg. Output : None Return Value : VOS_VOID History : --- Date : 2011-07-01 Author : g47350 Modification : Created function *****************************************************************************/ VOS_VOID OM_AcpuAgentMsgProc(MsgBlock* pMsg) { VOS_UINT16 usPrimId; /* 从消息前两个字节中取出原语ID */ usPrimId = *(VOS_UINT16*)(pMsg->aucValue); OM_RecordInfoStart(VOS_EXC_DUMP_MEM_NUM_1, pMsg->ulSenderPid, ACPU_PID_OMAGENT, *((VOS_UINT32*)pMsg->aucValue)); /* 判断是否为CCCPU AGENT发来的回复消息 */ if (IS_CAGENT_CNF_MSG(usPrimId)) { /* 判断消息是否被释放 */ if (VOS_NULL_PTR == g_pstOmAcpuCnfMsg) { /* 标记该消息不用释放 */ VOS_ReserveMsg(ACPU_PID_OMAGENT, pMsg); g_pstOmAcpuCnfMsg = pMsg; /* 释放信号量,使得调用API任务继续运行 */ VOS_SmV(g_ulOmAcpuCnfSem); } /* CCPU 已经OK,可以进行SD卡配置信息 */ if(OM_AUTOCONFIG_CNF == usPrimId) { OM_AutoConfigProc(); } OM_RecordInfoEnd(VOS_EXC_DUMP_MEM_NUM_1); return; } /* 否则为CCPU发来不需要回复的请求消息 */ if (OM_OLED_CLEAR_REQ == usPrimId) { OM_RecordInfoEnd(VOS_EXC_DUMP_MEM_NUM_1); return; } if (OM_OLED_DISPLAY_REQ == usPrimId) { OM_RecordInfoEnd(VOS_EXC_DUMP_MEM_NUM_1); return; } /* Modified by h59254 for AP-Modem Personalisation Project, 2012/04/12, begin */ if (OM_HSIC_CONNECT_REQ == usPrimId) { PPM_HsicConnectProc(); OM_RecordInfoEnd(VOS_EXC_DUMP_MEM_NUM_1); return; } /* Modified by h59254 for AP-Modem Personalisation Project, 2012/04/12, end */ if(OM_RECORD_DBU_INFO_REQ == usPrimId) { OM_AcpuLogShowToFile(VOS_FALSE); } if (OM_CONNECT_INFO_CNF == usPrimId) { OMRL_AcpuConnectInfoReportEvent((OM_CONNECT_INFO_CNF_STRU *)pMsg); } OM_RecordInfoEnd(VOS_EXC_DUMP_MEM_NUM_1); return; }
VOS_VOID OM_AcpuAgentMsgProc(MsgBlock* pMsg) { VOS_UINT16 usPrimId; OM_CBT_MSG_STRU *pstCbtMsg; /* 从消息前两个字节中取出原语ID */ usPrimId = *(VOS_UINT16*)(pMsg->aucValue); OM_RecordInfoStart(VOS_EXC_DUMP_MEM_NUM_1, pMsg->ulSenderPid, ACPU_PID_OMAGENT, *((VOS_UINT32*)pMsg->aucValue)); /* 判断是否为CCCPU AGENT发来的回复消息 */ if (IS_CAGENT_CNF_MSG(usPrimId)) { /* 判断消息是否被释放 */ if (VOS_NULL_PTR == g_pstOmAcpuCnfMsg) { /* 标记该消息不用释放 */ VOS_ReserveMsg(ACPU_PID_OMAGENT, pMsg); g_pstOmAcpuCnfMsg = pMsg; /* 释放信号量,使得调用API任务继续运行 */ VOS_SmV(g_ulOmAcpuCnfSem); } /* CCPU 已经OK,可以进行SD卡配置信息 */ if(OM_AUTOCONFIG_CNF == usPrimId) { OM_AutoConfigProc(); } OM_RecordInfoEnd(VOS_EXC_DUMP_MEM_NUM_1); return; } /* 否则为CCPU发来不需要回复的请求消息 */ if (OM_OLED_CLEAR_REQ == usPrimId) { OM_RecordInfoEnd(VOS_EXC_DUMP_MEM_NUM_1); return; } if (OM_OLED_DISPLAY_REQ == usPrimId) { OM_RecordInfoEnd(VOS_EXC_DUMP_MEM_NUM_1); return; } if (OM_HSIC_CONNECT_REQ == usPrimId) { PPM_HsicConnectProc(); OM_RecordInfoEnd(VOS_EXC_DUMP_MEM_NUM_1); return; } if (OM_CBT_SEND_DATA_REQ == usPrimId) { pstCbtMsg = (OM_CBT_MSG_STRU *)pMsg; /* C核发过来的校准数据 */ OM_AcpuSendDataChannel((OM_LOGIC_CHANNEL_ENUM_UINT32)OM_LOGIC_CHANNEL_CBT, (OM_RSP_PACKET_STRU *)(pstCbtMsg->aucData), pstCbtMsg->usLen); OM_RecordInfoEnd(VOS_EXC_DUMP_MEM_NUM_1); return; } if(OM_RECORD_DBU_INFO_REQ == usPrimId) { OM_AcpuLogShowToFile(VOS_FALSE); } if (OM_VERSION_DEBUG_INFO_CNF == usPrimId) { vos_printf("\r\nVersion Qry Rcv times = %d",((OM_VERSION_QRY_DEBUG_INFO_CNF_STRU *)pMsg)->stVerDebugInfo.ulVerQryRcvCnt); vos_printf("\r\nAlloc Mem Fail times = %d",((OM_VERSION_QRY_DEBUG_INFO_CNF_STRU *)pMsg)->stVerDebugInfo.ulAllocMemFail); vos_printf("\r\nDrv Err times = %d",((OM_VERSION_QRY_DEBUG_INFO_CNF_STRU *)pMsg)->stVerDebugInfo.ulDrvErr); vos_printf("\r\nLen Err times = %d",((OM_VERSION_QRY_DEBUG_INFO_CNF_STRU *)pMsg)->stVerDebugInfo.ulLenErr); vos_printf("\r\nSucc times = %d",((OM_VERSION_QRY_DEBUG_INFO_CNF_STRU *)pMsg)->stVerDebugInfo.ulSucc); } OM_RecordInfoEnd(VOS_EXC_DUMP_MEM_NUM_1); return; }