基于ARM9的车载导航系统的技术分析

基于ARM9的车载导航系统的技术分

目 次

摘要 ……………………………………………………………………………………………… 3
1 嵌入式系统简介 …………………………………………………………………… 4
1.1 嵌入式系统 ……………………………………………………………………… 4
2 嵌入式车载导航系统及其中的关键技术 ………………………………………… 6
2.1 车载导航嵌入式系统 …………………………………………………………… 6
2.2 其他主要技术模块……………………………………………………………… 7
3 嵌入式车载导航系统软件平台设计 ……………………………………………… 8
3.1 嵌入式系统(软件)……………………………………………………………… 8
3.2 嵌入式Linux平台的建立 ……………………………………………………… 9
3 总结 ………………………………………………………………………………… 13
参考文献………………………………………………………………………………14

1 嵌入式系统简介
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁减,适用于应用系统,对功能、可靠性、成本、体积和功耗等方面有特殊要求的专用的计算机系统。该系统可以结合处理器的系统电路和专属软件,成为一个独立的系统或者更大的系统的一部分。
1.1 嵌入式系统
嵌入式系统与通用计算机系统的本质区别在于系统应用不同,嵌入式系统是将一个计算机系统嵌入到对象系统中。这个对象可能是庞大的机器,也可能是小巧的手持设备,用户并不关心这个计算机系统的存在。嵌入式系统涉及计算机技术、微电子技术、电子技术、通信和软件等各行各业,它是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
1.1.1 嵌入式系统硬件结构
嵌入式系统一般包含嵌入式微处理器、外围硬件设备、嵌入式实时操作系统和用户的应用程序4个部分。任何嵌入式系统都包括硬件和软件两个方面。硬件包括微处理器、存储器、I/O端口和图形控制器。软件包括操作系统软件和应用软件,应用软件控制着嵌入式系统的运作和行为,而操作系统则为应用程序提供必要的底层支持。图1.1 给出了典型嵌入式硬件平台的组成。

3.2.2 交叉编译环境的建立
在满足系统稳定、安全、可靠的基础上,嵌入式产品的体积要尽可能小,从而不能够提供足够的资源供编译过程使用,因此,必须建立一种交叉编译的环境,即在高性能的宿主机上对即将运行于目标机上的程序进行编译,生成可在目标机上可以运行的代码格式,然后下载到目标机中运行。Linux 环境下使用GNU 工具完成编译、链接等过程,包括针对目标系统的编译器gcc、针对目标系统的二进制工具binuTIls 、针对目标系统的标准c 库glibc 和针对目标系统的Linux 内核头文件。
在linux 的根目录下,通过命令tar Ixvf cross-2.95.3.tar.bz2 进行解压缩,执行完毕之后在/usr/local/ 目录下自动生成arm/2.95.3 目录,进入2.93.3 目录下可以看到arm-linux 、bin、include 、lib 等各种目录,说明交叉编译工具安装完毕,编译环境已经建立起来了。
3.2.3 引导程序的移植
受嵌入式系统资源的限制,嵌入式系统的引导程序并不像PC 机上的引导程序一样是由BIOS 和位于硬盘MBR 中的引导程序组成,整个系统的引导加载任务主要是由一个称为BootLoader 的引导程序来完成的。BootLoader 是系统复位后首先要执行的代码,主要作用是初始化硬件设备、建立内存空间的映射等,将系统的软硬件环境带到一个合适的状态,从而为操作系统和应用程序的调用建立一个良好的环境。
针对本系统的引导程序移植的思路是找到一个与所设计的平台最相近的平台的BootLoader,然后根据所设计平台的硬件参数对BootLoader 进行修改,从而完成BootLoader 的移植。首先根据实际情况修改vivi 工程管理文件Makefile 文件中的相关参数,包括交叉编译器库和头文件路径,交叉编译开关选项设置,Linux 内核代码中的库和头文件路径等。然后根据硬件平台的参数修改相应的配置,如处理器时钟、存储器初始化、通用I/O 初始化等等。然后进行配置、编译生成可执行的代码。
3.2.4 内核的移植
由于嵌入式系统是针对特定应用的,而且资源有限,所以标准Linux 无法应用到嵌入式系统中,因此必须根据实际情况对Linux 进行裁剪、配置,从而产生一个适用的嵌入式Linux 操作系统。Linux 内核的移植包括获取源代码、修改设置、裁减配置和编译。
3.2.5 获取源代码
Linux 内核源代码一般都有专门的机构负责维护,我们可以从这些机构的 站上下载下来使用。
嵌入式系统的应用的针对性很强,从站点上下载下来的内核不可能包含针对所有嵌入式系统的代码,因此需要对代码进行修改设置,从而适合目标平台。一般包含下面几步。
① 编写与处理器相关的代码。主要包括时钟设置、中断设置、存储器分配及其他一些寄存器的设置等等,这些与HMS30C7202 处理器相关的代码放在/arch/arm/mach-s3c2440 目录下。
② 修改根目录下的工程管理文件Makefile ,指定所移植的硬件平台和交叉编译器的路径。
③ 修改/ arch/arm 目录下的工程管理文件Makefile ,指定内核运行的虚拟地址,修改该目录下的配置文件config.in,以便在执行配置命令时能够显示HMS30C7202 的相关信息。
④在/arch/arm/def-configs 目录下添加配置好的HMS30C7202 配置文件。在/arch/arm/boot/compressed 目录下添加处理器的初始化代码head-s3c2440.s 。
⑤ 修改/arch/arm/kernel 目录下的工程管理文件Makefile ,确定文件类型之间的依赖关系。
3.2.6 裁减配置及编译
修改完内核设置后,就可以对内核进行裁减配置及编译了,在配置中剪裁掉冗余的部分,使编译生成的最终的内核的映像文件代码量尽可能小。执行如下命令:

make menuconfig //进入配置菜单,选择处理器类型和所需要的各种外设、协议的支持等等, 包含了LCD 、触摸屏、串口、声音、EXT2、FAT 和JFFS2 文件系统以及TCPIP 协议的支持.

make dep //搜索Linux 编译输出与源代码之间的依赖关系,并生成依赖文件。

make zlmage //编译Linux 内核,生成压缩的内核映像文件zImage 。存放在/arch/arm/boot/ 目录下。

3.2.7 驱动程序的编写
驱动程序是操作系统内核和底层硬件之间的接口,驱动程序为应用程序屏蔽了硬件的细节,通过驱动程序,应用程序对硬件的操作可以像对普通的文件操作一样方便。驱动程序的主要作用是初始化和释放硬件设备,检测和处理硬件设备出现的问题,在应用程序、内核和底层硬件之间传输数据。
由于嵌入式系统是针对具体应用的,因此,应该根据具体的平台编写相应设备的驱动程序,以方便应用程序对底层硬件的访问。每一个系统调用都对应着file_operaTIons 结构的每一个成员,编写驱动程序主要是编写底层设备需要的各个操作函数并填充结构file_operaTIons ,该结构在/include/Linux/fs.h 文件中定义。
驱动程序通过设备名、主设备 和从设备 与具体的硬件相联系。驱动程序可以以动态或者静态方式加载到内核当中,在调试阶段,一般以动态的方式加载驱动程序,而在最终形成产品时,添加到内核当中,每次启动内核时自动加载。
3.2.7 根文件系统
一个嵌入式产品的稳定运行,除了引导程序、内核之外,还必须有一个区域用来为用户提供支持架构和用户使用的应用软件,存放数据读写的结果,这个区域就是根文件系统。嵌入式系统中通常使用的根文件系统有:Romfs 、Cramfs 、Ramfs 、JFFS2、EXT2 等,另外根文件系统既可以建立在RAMDISK 上,也可以建立在Flash 上,在RAMDISK 上建立根文件系统Cramfs 。

[1] 管素清,刘捷.嵌入式车载导标系统系统的设计[J].计算机工程与设计,2005.26(5): 1320-1322
[2] 王晓宁.基于ARM车载导航系统的研究与分析[D].燕山大学,2010
[3] 唐良宝,柏子刚.基于ARM9-Linux平台的车载导航系统设计.微计算机信息, 2009(25):01~02
[4] 李秀娟,张晓东,于心俊. 嵌入式系统设计. 机械工业出版 ,2013,8
[5] 于明.ARM9嵌入式系统设计与开发教程.电子工业出版 ,2006,4
[6] 张德营,王喆, 张晓艳.基于嵌入式技术的车载导航系统的研究.电子元器件资讯,2010(7)
[7] 杨殿阁.车载导航系统的研究与实现.汽车技术2005(01)
[8] 翟战强,蔡少华.基于GPRS/GPS/GIS的车辆导航与监控系统.测绘通 .2004 (02)
[9] 李欣,俞斌.一种改进的地图匹配技术在车载导航系统中的应用[J].电子测试,2008(5):60-65
[10] 黄帅.嵌入式车载导航的设计和实现.微计算机信息.2008(10):284-285
[11] 周立功. ARM& WinCE实验与实践:基于S3C2410[M].北京:北京航空航天大学出版杜,2007
[12] (印度)Kamal R.嵌人式系统:体系结构、编程设计[M].陈曙晖,等译.北京:清华大学出版 ,2005.

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux25309 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年5月16日
下一篇 2020年5月16日

相关推荐