Linux下移植GPS应用程序之常见问题的分析与解决方法之一
OS:Linux
一. 直接提供函数实现给第三方
原因:主芯片设计以及gps芯片的更改,导致gps驱动程序时常处于更新状态
演化为:给第三方提供.so动态链接库以及.h头文件
二.gps参数写死到程序中
gps参数有:Serial串口设备的路径、GPIO设备的端口号、波特率、GPIO端口号、复位Reset的GPIO端口号、电源管理工具的路径、快速启动GPS所保存的文件路径(冷启动和热启动之分);
开发板有:Lily、Bali以及Apollo1.0,Apollo1.1;
演化为:提供gps参数的配置文件,如:atgps.cnf以及navione.cnf两个配置文件
三.直接将驱动开发的软件接口提供给第三方
原因:
1. 驱动开发的软件接口,会经常发生变化,接口不稳定;
2. 驱动开发的软件接口,还不是第三方真正需要的接口,还不能完全满足用户需求;
3. 要基于驱动开发的软件接口,来进一步扩展和完善,使其满足第三方的需要;
演化为:基于驱动开发人员提供的接口,来进行封装,以满足实现客户的需要。
四.第三方没有调用at_close_gps函数,待机时间明显缩短
造成的后果:电流偏大,电流降不下来,待机时机偏短;
解决办法:确保第三方,调用at_close_gps函数,关闭gps设备。
五.程序与数据没有分离,造成一个目录经常放不下所有程序和数据
数据:地图数据,声音数据
Linux分区的目录经常才400-500M,而GPS整个存储空间需要900M
演化为:程序与数据分离
六.当前目录与运行程序的路径相混淆
当前目录经常会发生更改,当前目录不一定是运行程序的所在路径。
所以,一定要注意区分清楚。
七.使用C++类的形式,封装数据,隐藏信息
1.数据,信息是与具体的操作相关联的;
2.给第三方提供操作行为;
3.信息,属性隐藏;
八.一个开发板不同版本Apollo1.0与Apollo1.1,需要2套gps代码
开发板:Apollo开发板就有Apollo1.0与Apollo1.1至少两个硬件版本之分,毕竟硬件还是有点差别的;
解决办法:一套代码可以适合多个不同的开发板,一个开发板可以拥有多个不同的版本。
九.针对给第三方的接口,编写验证其接口正确性,其工具是:gpstool
分享到:
相关推荐
Linux应用程序移植到VxWorks的方法研究.pdf
本文将主要阐述将已有驱动程序、开发系统、应用软件和定制Linux配置移植到2.6内核的方法步骤。
本课题任务是移植安装Linux操作系统,开发LED或蜂鸣器报警应用设备的驱动程序及其应用程序。要求完成的任务和实现的功能有: (1) 以FS4412开发板为开发平台,移植Linux操作系统,含引导程序、Linux操作系统内核、...
如果不是,那么本文将给您些提示和技巧,在您把应用程序移植到 Linux 的时候为您提供指导。本文首先为大家描述 Linux 的特征和它在开发和管理应用程序中的具体价值。然后将回顾重要问题,给出包含移植的主要步骤的...
windows linux 程序 移植
Linux应用程序向WindowsCE平台移植的研究与实现
将 linux 内核的 kfifo 移植到应用层, 实现一种易使用, 高效率的 fifo 队列
Linux下的程序移植到windows上需要修改的地方
在 Linux 操作系统移植任务中,充分研究了驱动程序和底层 IP 核的关系,基于 V4L2 框架完成了视频处理 IP 核驱动程序开发,通过视频 IP 核的优化处理,完成了 RGB 格式高清图像采集与显示。在应用层采用软硬件协同...
适用于Vxworks平台到Linux平台的嵌入式研发
Linux下telnet移植
ARM9的GPS定位程序在Linux26下的移植设计说明.docARM9的GPS定位程序在Linux26下的移植设计说明.docARM9的GPS定位程序在Linux26下的移植设计说明.docARM9的GPS定位程序在Linux26下的移植设计说明.docARM9的GPS定位...
CPU源代码分析与芯片设计及Linux移植,关注CPU,关注嵌入式
当从 OS/2 移植到 Linux 时,关键的编程问题是什么?本文为大家介绍将OS/2应用程序移植到Linux操作系统的方法。
面向机器人应用的嵌入式Linux移植与应用.pdf
用Kylix实现Windows应用程序到Linux平台的移植.pdf
第三节:boa web服务器在PC上移植 第四节:boa web服务器在S3C2440开发板上移植 第五节:boa移植过程中出现的问题 第六节:sqlite-3.7.6.2在PC及S3C2440平台移植 第七节:ffmpeg视频编码库S3C2440移植 第八节:...
本文将纵览几种常用的内存映射I/O方法,它们经常出现于旧的...特别地,本文会重点讨论和比较RTOS代码中的内存映射,Linux基于 I/O调度队列的移植,和重新定义RTOS I/O,以便在本地Linux 驱动程序和守护进程里应用。
Linux拥有丰富各种源代码资源,但是大部分代码在Windows平台情况是无法 正常编译的。Windows平台根本无法直接利用这些源代码资源。如果想要使用完整的代码,就要做移植工作。因为C/C++ Library的不同和其他的一些原因...