qcril:第4章 RILC运行机制

第4章 RILC运行机制

4.1 RILC运行机制

RILC代码重点在于:hardware/ril/libril(Runtime运行环境的源文件)、hardware/ril/reference-ril.so、hardware/ril/rild这三个目录下的C/C++代码文件。

Rilc运行在UserLibraries系统运行库中的HAL层,它使用HAL Stub运行结构。最关键的为Runtime对外提供Proxy代理接口,Stub向Runtime提供Operations操作函数,Runtime向Stub提供Callback函数。

RILC运行机制主要围绕libRIL与Reference-RIL相互调用,从而完成solicited和unsolicited消息处理机制,包括两个过程:启动和运行

启动过程:rild完成;

运行核心:LibRIL和Reference-RIL消息交互。

RILC运行机制

LibRIL为Reference-RIL实现了RIL请求转换成AT命令,并执行AT命令逻辑。

LibRIL提供了Reference-RIL的proxy代理接口。RILJ基于Socket网络连接完成solicited和unsolicited消息和LibRIL进行交互,最终交给Reference-RIL进行处理。

Reference-RIL和modem之间通过串口进行通信,主要用于AT命令执行。

4.1.1 rild.c的main函数

         第一章所说的main函数,它整体负责启动rilc。关键职责是建立LibRIL和Reference-RIL的一种相互协调的能力。

LibRIL中有指向Reference-RIL中funcs结构体的指针。

Reference-RIL中有指向LibRIL中s_rilEnv结构体(Runtime)的指针。

4.1.2 LibRIL目录结构

hardware/ril/libril

    Android.mk

    Ril_commands.h //定义了LibRIL接收到RILJ发出的solicited请求消息所对应的调用函数和返回调用函数。

    Ril.cpp //建立Runtime框架;

    Ril_event.cpp //实现基于ril_event双向链表操作函数;

    Ril_event.h //定义ril_event事件的结构定义;

    Ril_ex.h

    Ril_unsol_commands.h //定义了unsolicited消息返回函数的调用。

……

1)LibRIL以ril.cpp代码为核心,其他代码协助他完成LibRIL Runtime的启动和运行,LibRIl Runtime的两个作用:

1、与RILJ基于socket交互;

2、与Reference-RIL基于函数调用的交互。

2)结构体RIL_env定义了三个指向函数的指针。

3)结构体RIL_RadioFunctions:当LibRIL接收到RILJ发起的solicited请求后,其他5个指向函数的指针会调用Reference-RIL提供给funcs中对应请求函数。

4.1.3 LibRIL Runtime

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值