Android ril移植-6410开发板SIM300模块

++++++++++++++++++++++++++++++++++++++++++

本文系本站原创,欢迎转载! 转载请注明出处:

http://blog.csdn.net/mr_raptor/article/details/6598891

++++++++++++++++++++++++++++++++++++++++++

 

环境介绍:

    1. ubuntu 10.10,作为Android编译环境同时作为NFS让6410开发板挂载作为根文件系统。

    2. Android使用的是友善给的源码,使用./build-android命令编译出来,使用./genrootfs.sh命令在主源码主目录下生成rootfs,删除掉data/app下的安装包(不删除也可以)

   3. 将rootfs里的文件系统拷贝到NFS挂载目录下,我的NFS目录是/work/nfs_root,安装并开启NFS,通过exportfs命令测试是否将NFS共享。

   4. 修改uboot中的kernel启动参数为:

setenv bootargs noinitrd  init=/linuxrc root=/dev/nfs nfsroot=192.168.11.11:/work/nfs_root ip=192.168.11.13:192.168.11.11:192.168.11.1:255.255.255.0:www.android.com:eth0:off console=ttySAC0,115200

   开发板使用192.168.11.13地址,NFS主机使用192.168.11.11地址。注意:每次开发板重启都要重新设置下IP,因为ubuntu会自动更新IP地址。

 

 1. 在进行ril移植之前建议先了解下RIL的框架,推荐下面的文章:http://blog.sina.com.cn/s/blog_682793a50100jeo5.html

 

2. 主要修改的是hardware/ril/reference-ril/reference-ril.c文件其它文件基本上不用修改,因为gooooogle已经将框架封装好了。

   将mainLoop函数中的2043行进行修改:

if ( fd >= 0 && !memcmp( s_device_path, "/dev/ttyS", 9 ) ) {
                    /* disable echo on serial ports */
                    struct termios  ios;
                    tcgetattr( fd, &ios );
                    ios.c_lflag = 0;  /* disable ECHO, ICANON, etc... */
                    tcsetattr( fd, TCSANOW, &ios );
 }

修改之后:

if ( fd >= 0 && !memcmp( s_device_path, "/dev/s3c2410_serial1", 20 ) ) {
                    /* disable echo on serial ports */
                    struct termios  ios;

                    bzero(&ios, sizeof(ios));
                    tcgetattr( fd, &ios );

                    ios.c_iflag |=

                    ios.c_cflag |= CLOCAL | CREAD | CS8;   // 用于本地连接和接收使能数据位长度

                    ios.c_iflag |= IGNPAR;

                    cfsetispeed(&ios, B115200);           //设置波特率

                    cfsetospeed(&ios, B115200);

                    ios.c_lflag = 0;  /* disable ECHO, ICANON, etc... */

                    tcflush(fd, TCIFLUSH);
                    tcsetattr( fd, TCSANOW, &ios );
 }

3.  修改initializeCallback函数中AT命令(建议参照google提供的命令和SIM300模块给的AT命令参考文档)

 

修改完之后,重新编译Android源码,将新生成的libreference-ril.so拷贝到NFS根目录下,重启开发板即可打电话,接电话。

 

扩展:如果使用的FriendlyArm提供的源码,那你看不到状态栏的电话信号图标和电池图标,这是因为FriendlyArm已经将其注释掉了,请将frameworks/base/packages/systemui/src/com/android/systemui/statusbar/StatusBarPolicy.java文件里的注释支持即可。

++++++++++++++++++++++++++++++++++++++++++

本文系本站原创,欢迎转载! 转载请注明出处:

http://blog.csdn.net/mr_raptor/article/details/6598891

++++++++++++++++++++++++++++++++++++++++++

 

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Android RIL(无线射频接口层)模块是运行在Android手机系统上的一层软件模块,它作为通信协议栈和硬件之间的桥梁,提供了与移动通信网络的通信功能。RIL模块主要负责处理与手机基带芯片的通信,管理移动网络连接以及处理移动通信相关功能。 RIL模块的主要职责包括: 1. 处理与基带芯片的通信:RIL模块通过与基带芯片之间的通信接口,实现对基带芯片的控制和管理,包括进行移动网络的注册、鉴权和密钥协商等。 2. 管理移动网络连接:RIL模块负责与移动网络建立通信连接,包括拨号、发送和接收数据等相关操作。它能够实现与移动网络的通信功能,如发送和接收短信、接听和拨打电话以及访问互联网等。 3. 实现SIM卡管理:RIL模块管理与SIM卡之间的通信,包括识别和读取SIM卡中的相关信息,如号码、短信、联系人等。它能够处理与SIM卡相关的操作,如读取SIM卡中的联系人、发送和接收短信等。 4. 处理通话和短信功能:RIL模块能够实现电话的呼叫功能,包括呼出、接听、挂断等。同时,它还能够处理短信的发送和接收,包括编码和解码等操作。 总之,Android RIL模块Android系统中的一个重要软件模块,它为手机提供了与移动通信网络的连接和通信功能。通过与基带芯片的交互,RIL模块能够实现与移动网络的通信、管理移动网络连接、处理SIM卡相关操作以及实现电话和短信功能等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值