I.MX6 GPS Android HAL Framework 调试

简介: I.MX6 GPS Android HAL Framework 调试 一、参考文章: android4.3 GPS定位问题 http://blog.
                         I.MX6 GPS Android HAL Framework 调试

一、参考文章:
    android4.3 GPS定位问题
        http://blog.csdn.net/bzw073/article/details/44341943

二、修改GPS配置文件:
    1. myzr@myzr:~/myandroid/device$ grep ttymxc2 * -R
        ......
        fsl/imx6/etc/ueventd.freescale.rc:/dev/ttymxc2              0660   system     gps
        fsl/sabresd_6dq/init.rc:    symlink /dev/ttymxc2 /dev/gpsdevice
        fsl/imx5x/ueventd.freescale.rc:/dev/ttymxc2              0600   bluetooth  bluetooth
        fsl/imx53_smd/init.freescale.rc:#service hciattach /system/bin/logwrapper /system/bin/hciattach -n -s 115200 /dev/ttymxc2 ath3k 3000000 flow sleep
        fsl-proprietary/gps/Orion.ini:;ReceiverComPortName=/dev/ttymxc2
        ......
    
    2. cat fsl/imx6/etc/ueventd.freescale.rc
        ......
        /dev/ttymxc1              0660   system     gps   <----- zengjf modified
        /dev/ttya0                0660   system     gps
        /dev/ptya0                0660   system     gps
        /dev/ttya1                0660   system     gps
        /dev/ptya1                0660   system     gps
        ......
        
    3. 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 60
        write /sys/class/gpio/gpio60/direction "out"
        write /sys/class/gpio/gpio60/value 1
        ......
    
    4. cat fsl-proprietary/gps/Orion.ini
        ......
        ; GPS Receiver COM Port Baud Rate for boot, 115200, 230400, 460800, 921600,     or custom
        ReceiverComPortBootSpeed=9600            <----- zengjf modified
        ReceiverComPortName=/dev/ttymxc1                 <----- zengjf modified
        ......

三、修改Atheros GPS HAL代码:
    1. 代码位置:/home/myzr/myandroid/hardware/imx/libgps/athr_gps.c
    2. GPS调试,当然要打开调试功能了:
        ......
        #define  GPS_DEBUG
        /* #undef    GPS_DEBUG_TOKEN */ /* print out NMEA tokens */
        #define  GPS_DEBUG_TOKEN    /* print out NMEA tokens */
        ......
    3. 修改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 = 0;
                ios.c_lflag = 0;  /* disable ECHO, ICANON, etc... */
                tcsetattr( state->fd, TCSANOW, &ios );
                tcflush(state->fd,TCIOFLUSH);
            } 
            ......
        }

四、修改GPS LocationManagerService代码:
    1. 代码位置:/home/myzr/myandroid/frameworks/base/services/java/com/android/server/LocationManagerService.java
    2. 具体原因请参考《参考文章》
        @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编译:
    1. 代码位置:/home/myzr/myandroid/device/fsl/sabresd_6dq/BoardConfig.mk
    2. 参考代码如下,没有任何修改:
        BOARD_HAVE_HARDWARE_GPS := true
        USE_ATHR_GPS_HARDWARE := true
        USE_QEMU_GPS_HARDWARE := false

 

目录
相关文章
|
20天前
|
存储 编解码 API
Android Media Framework(一)OpenMAX 框架简介
OpenMAX IL是Khronos Group为嵌入式和移动设备设计的低层级接口,用于统一调用音频、视频和图像编解码器,确保跨平台兼容性。它包括Core API(管理组件加载和方法调用)和Component API(组件实现,如源、接收器、编解码器等)。组件通过端口进行数据交互,客户端使用Core API加载和控制组件。Android引入OMX IL以支持不同芯片上的编解码器。组件状态包括Loaded、Idle、Executing和Invalid。组件架构涉及参数配置、命令处理和缓冲区管理,数据交换通过回调函数完成,端口持有预分配或组件自分配的缓冲区。
|
1月前
|
安全 Linux Android开发
Android最强保活黑科技的最强技术实现,2024年最新阿里资深Android开发带你搞懂Framework
Android最强保活黑科技的最强技术实现,2024年最新阿里资深Android开发带你搞懂Framework
Android最强保活黑科技的最强技术实现,2024年最新阿里资深Android开发带你搞懂Framework
|
1月前
|
存储 定位技术 开发工具
Android 开发前的设计,Android之内存泄漏调试学习与总结
Android 开发前的设计,Android之内存泄漏调试学习与总结
|
1月前
|
算法 架构师 程序员
android开发板调试,Android程序员的春天
android开发板调试,Android程序员的春天
|
1月前
|
编解码 调度 Android开发
Android音频框架之一 详解audioPolicy流程及HAL驱动加载与配置
Android音频框架之一 详解audioPolicy流程及HAL驱动加载与配置
52 0
|
1月前
|
Shell Android开发
Android Activity重写dump方法实现通过adb调试代码
Android Activity重写dump方法实现通过adb调试代码
21 0
|
1月前
|
Android开发 C++
Android S HAL库的编译
Android S HAL库的编译
17 0
|
1月前
|
Android开发 C++
Android P HAL层添加HIDL实例
Android P HAL层添加HIDL实例
29 0
|
1月前
|
安全 Android开发
Android HAL 层
Android HAL 层
17 1
|
1月前
|
Android开发
Android源代码定制:Overlay目录定制|调试Overlay资源是否生效
Android源代码定制:Overlay目录定制|调试Overlay资源是否生效
27 0