车载卫星定位导航系统设计 - 图文(9)

2020-02-21 15:17

浙江工业大学本科毕业设计论文

图5-7数据解析图

图5-8 数据解析图

5.3 调试过程中遇到的问题

1. 代码本身的问题

这是最常见的问题,需要通过不断的编译,调试,修改等过程来验证代码的语法错误。

34

浙江工业大学本科毕业设计论文

可以用codewarrior软件,或者直接将文件直接放到ubuntu中,通过gcc编译,发现这样编译时可行的。

2. 编译工具的问题

用gcc通过编译后,通过nfs挂载到6410开发板,但是执行还是错误。通过网上查阅资料,发现直接使用gcc只能产生在pc上执行的.o文件,需要通过arm-Linux-gcc交叉编译产生的.ko文件才是能在开发板上运行的二进制文件。 3.在android和Linux中运行的区别

通过dnw在android中运行需要静态编译:

图5-9 静态编译

否则会报错/system/bin/sh: ./mygps: not found。同时可执行文件要放在./system目录下,如果直接在/mnt/sdcard目录下运行会报错/system/bin/sh: ./mygps: permission denied

35

浙江工业大学本科毕业设计论文

第6章 android系统下GPS及串口应用程序的开发

6.1 android系统下GPS的构架解析

图6-1 架构解析

36

浙江工业大学本科毕业设计论文

图6-2 函数调用

如图6-1及6-2所示,基本可以总览android中GPS的架构以及调用函数情况。

37

浙江工业大学本科毕业设计论文

首先来看看GPS模块的代码结构: Framework:

1.frameworks/base/location/java/android/location。这里主要是用来被App调用的,API包是android.location。

2.frameworks/base/location/java/com/android/internal/location。这个目录是Framework对Location服务的内部实现。

3.framework\\services\\java\\com\\android\\server。这个目录只有一个文件LocationManagerService.java,是Location服务对内部实现的一种封装。

JNI(Java Native Interface, JAVA本地调用):

frameworks/base/core/jni/android_location_gpsLocationProvider.cpp。JNI层只有一个文件,起到承上启下的作用。上层承接Framework,下层调用HAL层具体硬件抽象实现。

HAL:Hardware Abstract Layer 硬件抽象层 hardware\\libhardware_legacy\\gps;

hardware\\libhardware_legacy\\include\\hardware_legacy\\gps.h。HAL层相当于一个Linux应用程序接口,通过open,close等操作,操作硬件设备。Android的源代码只实现了模拟器的GPS接口,具体在文件gps_qemu.c中。在2.2版本中提供了对QCOM公司的GPS的实现,在以下目录:\\hardware\\qcom。至于其中详细的函数代码就不在累述。

6.2 如何打通android中间层

开发板提供的 GPS HAL 代码为 SO 文件,项目把 GPS 模块给换了一个 UART 口,导致 HAL 层代码需要重新写。

源码中与GPS有关的文件夹:

/framework/base/services/jni/com_android_server_location_gpsLocationProvider.cpp hardware/libhardware_legacy/gps

38


车载卫星定位导航系统设计 - 图文(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:网络题库

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: