嵌入式技术论坛
直播中

fanB

8年用户 1382经验值
擅长:20615
私信 关注
[资料]

Linux Ril中使用共享内存交互相关资料分享

1、移植RIL到ART-Smart之共享内存简析

本次移植的linux ril中,rild作为一个client与modem通过AT命令交互,同时也作为一个server与应用通信。在/libd/ril.c中,已经将各个服务封装为C接口,应用可以include <ril.h>调用接口实现各个功能,无需关心其与rild直接的通信部分。

int Dial(char *pCallingNumber);
int Answer();
int HangUp();
int SendDTMF(char cDtmf);
int SendSMS(char *pNumber, char *pMessage, int nType);
int SetSpeakerVolume(int nVol);
...
int GetLastError(void);
int GetModemVolume(void);
int GetModemMicGain(void);
int GetLTEBands(void);
int GetWCDMABands(void);
int GetNWScanMode(void);

这些接口与rild直接的通信主要通过两种方式,一种是在应用启动初期,通过一个固定的key拿到一块共享内存,并将其映射到自己的虚拟内存空间。这块共享内存主要包含一些modem的基本信息、rild版本号以及接下来消息队列通信中用到的mqID。而之后,应用的接口调用和主动上报监听则主要通过消息队列的机制传递。

原作者: AngerCoke

更多回帖

发帖
×
20
完善资料,
赚取积分