I.MX6 GPS Android HAL Framework 调试

一、参考文章:
android4. GPS定位问题
http://blog.csdn.net/bzw073/article/details/44341943 二、修改GPS配置文件:
. myzr@myzr:~/myandroid/device$ grep ttymxc2 * -R
......
fsl/imx6/etc/ueventd.freescale.rc:/dev/ttymxc2 system gps
fsl/sabresd_6dq/init.rc: symlink /dev/ttymxc2 /dev/gpsdevice
fsl/imx5x/ueventd.freescale.rc:/dev/ttymxc2 bluetooth bluetooth
fsl/imx53_smd/init.freescale.rc:#service hciattach /system/bin/logwrapper /system/bin/hciattach -n -s /dev/ttymxc2 ath3k flow sleep
fsl-proprietary/gps/Orion.ini:;ReceiverComPortName=/dev/ttymxc2
...... . cat fsl/imx6/etc/ueventd.freescale.rc
......
/dev/ttymxc1 system gps <----- zengjf modified
/dev/ttya0 system gps
/dev/ptya0 system gps
/dev/ttya1 system gps
/dev/ptya1 system gps
...... . cat fsl/sabresd_6dq/init.rc
......
# Set GPS serial and reset GPIO pin
setprop ro.kernel.android.gps /dev/ttymxc1 <----- zengjf modified
setprop persist.gps.oacmode @f
symlink /dev/ttymxc1 /dev/gpsdevice <----- zengjf modified
write /sys/class/gpio/export
write /sys/class/gpio/gpio60/direction "out"
write /sys/class/gpio/gpio60/value
...... . cat fsl-proprietary/gps/Orion.ini
......
; GPS Receiver COM Port Baud Rate for boot, , , , , or custom
ReceiverComPortBootSpeed=            <----- zengjf modified
ReceiverComPortName=/dev/ttymxc1 <----- zengjf modified
...... 三、修改Atheros GPS HAL代码:
. 代码位置:/home/myzr/myandroid/hardware/imx/libgps/athr_gps.c
. GPS调试,当然要打开调试功能了:
......
#define GPS_DEBUG
/* #undef GPS_DEBUG_TOKEN */ /* print out NMEA tokens */
#define GPS_DEBUG_TOKEN /* print out NMEA tokens */
......
. 修改tty 串口默认通信波特率:
int gps_opentty(GpsState *state)
{
......
// disable echo on serial lines
if ( isatty( state->fd ) ) {
struct termios ios;
tcgetattr( state->fd, &ios );
bzero(&ios, sizeof(ios));
//ios.c_cflag = B115200 | CS8 | CLOCAL | CREAD;
ios.c_cflag = B9600 | CS8 | CLOCAL | CREAD; <----- zengjf modified
ios.c_iflag = IGNPAR;
ios.c_oflag = ;
ios.c_lflag = ; /* disable ECHO, ICANON, etc... */
tcsetattr( state->fd, TCSANOW, &ios );
tcflush(state->fd,TCIOFLUSH);
}
......
} 四、修改GPS LocationManagerService代码:
. 代码位置:/home/myzr/myandroid/frameworks/base/services/java/com/android/server/LocationManagerService.java
. 具体原因请参考《参考文章》
@Override
public void reportLocation(Location location, boolean passive) {
checkCallerIsProvider(); // 2015-11-2 zengjf modify for GPS module
/*
if (!location.isComplete()) {
Log.w(TAG, "Dropping incomplete location: " + location);
return;
}
*/
......
} 五、打开开发板GPS编译:
. 代码位置:/home/myzr/myandroid/device/fsl/sabresd_6dq/BoardConfig.mk
. 参考代码如下,没有任何修改:
BOARD_HAVE_HARDWARE_GPS := true
USE_ATHR_GPS_HARDWARE := true
USE_QEMU_GPS_HARDWARE := false

I.MX6 GPS Android HAL Framework 调试的更多相关文章

  1. 王家林的81门一站式云计算分布式大数据&移动互联网解决方案课程第14门课程:Android软硬整合设计与框架揭秘: HAL&Framework &Native Service &App&HTML5架构设计与实战开发

    掌握Android从底层开发到框架整合技术到上层App开发及HTML5的全部技术: 一次彻底的Android架构.思想和实战技术的洗礼: 彻底掌握Andorid HAL.Android Runtime ...

  2. I.MX6 AW-NB177NF wifi HAL 调试修改

    /************************************************************************* * I.MX6 AW-NB177NF wifi H ...

  3. Android如何完全调试framework层代码

    1 之前写过一篇文章:<Android实现开机调试system_process> 2 google的eclipse插件ADT的已经能够很方便的调试Android的apk了,但是调试的时候应 ...

  4. 【转】Android HAL实例解析

    原文网址:http://www.embedu.org/Column/Column339.htm 作者:刘老师,华清远见嵌入式学院讲师. 一.概述 本文希望通过分析台湾的Jollen的mokoid 工程 ...

  5. Android HAL实例解析

    一.概述 本文希望通过分析台湾的Jollen的mokoid 工程代码,和在s5pc100平台上实现过程种遇到的问题,解析Andorid HAL的开发方法. 二.HAL介绍 现有HAL架构由Patric ...

  6. Android HAL模块实现

    1. HAL介绍 Android的HAL(Hardware Abstract Layer硬件抽象层)是为了保护一些硬件提供商的知识产权而提出的.是为了避开linux的GPL束缚. 思路是把控制硬件的动 ...

  7. 整理: Android HAL

    这篇文章整理来自http://bbs.chinaunix.net/thread-3675980-1-1.html 在论坛中看到的Android HAL讨论,有个ID描述的比较清楚,摘录如下: temp ...

  8. 在Mac系统上配置Android真机调试环境

    在Mac系统上配置Android真机调试环境 mac上配置安卓环境还说挺方便的,真机调试也比win上要好一些.win上被各种软件强行安装了xxx助手. 在mac上就了一个干净的感觉. 下载Androi ...

  9. android HAL 教程(含实例)

    http://www.cnblogs.com/armlinux/archive/2012/01/14/2396768.html Android Hal 分析                       ...

随机推荐

  1. ZOHO 免费小型企业邮箱和个人邮箱

    Zoho Mail 提供免费小型企业邮箱注册.精简版只能添加一个域到您的机构帐号,最多允许10用户.如果您想添加多个域,您可以升级到标准版.10用户免费,5 GB /每用户,5 GB (共享). 除了 ...

  2. java static成员变量方法和非static成员变量方法的区别

    这里的普通方法和成员变量是指,非静态方法和非静态成员变量首先static是静态的意思,是修饰符,可以被用来修饰变量或者方法. static成员变量有全局变量的作用       非static成员变量则 ...

  3. 跨域nginx,CORS

    浏览器的同源策略是浏览器上为安全性考虑实施的非常重要的安全策略.从一个域上加载的脚本不允许访问另外一个域的文档属性.举个例子:比如一个恶意网站的页面通过iframe嵌入了银行的登录页面(二者不同源), ...

  4. php 用户向微信发送信息

    1:制作微信菜单栏 <?phpheader("Content-type: text/html; charset=utf-8");function request_post($ ...

  5. GreenOpenPaint的实现(四)放大缩小处理滚动事件

    放大缩小看似简单,实际上还是比较复杂的.所以专门拿出来说明. 缩放这块,主要就是处理m_pDoc->m_scalefactor void CGreenOpenPaintView::OnButto ...

  6. 2018-2019-1 20189215 《Linux内核原理与分析》第六周作业

    <庖丁解牛>第五章书本知识总结 system_call并不是一个普通的函数,只是一段汇编代码的起点,且内部没有严格遵守函数调用堆栈机制. 通过set_system_trap_gate函数绑 ...

  7. 在pom.xml中使用distributionManagement将项目打包上传到nexus私服

    本文介绍 如何在pom.xml中使用distributionManagement将项目打包上传到nexus私服 1.pom.xml文件添加distributionManagement节点 <!- ...

  8. struts1和struts2比较

  9. bzoj 4443: [Scoi2015]小凸玩矩阵

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 149  Solved: 81[Submit][Status][Discuss] Description ...

  10. php+mysql 注入基本过程

    当mysql版本>5.0时我们只需要访问information_schema库即可查询数据库的相关概要信息,而对于<5.0的版本则需要爆破,今天我们测试的环境是mysql 5.5.40,对 ...