您的位置 首页 电路

根据Linux的嵌入式车载导航系统的规划

1 前言HMS30C7202嵌入式微处理器是目前性价比交优秀的芯片,由于其优良的性能用于替代早期的芯片,在车辆导航方面的开发应用有着广阔的应用前景。在诸多的操作系统中,由于Wind

  1 前语

  HMS30C7202嵌入式微处理器是现在性价比交优异的芯片,因为其优秀的功能用于代替前期的芯片,在车辆导航方面的开发运用有着宽广的运用远景。

  在许多的操作体系中,因为Windows CE 、Vxwork等操作体系都是商业化产品,其价格昂扬、源代码关闭。别的,关于上层运用开发者而言,嵌入式体系需求的是一套高度简练、质量牢靠、运用广泛、易开发、多使命,并且价格低廉的操作体系。源码敞开的Linux正好能够满意这些要求。因为嵌入式体系的运用多种多样,并且规范Linux操作体系比较巨大,因而,需求依据实践运用对规范Linux进行从头的移植、裁剪和装备,生成代码紧凑、代码量小的特定操作体系。

  2 导航体系的硬件组成

  车载导航体系的硬件渠道为HMS30C7202 的SAMSUNG 公司的32位高功能嵌入式微处理器,以HMS30C7202为中心,包含了LCD液晶显现模块、存储器模块(Flash、SDRAM)、GPS模块、串行接口、USB 接口、IrDA红外通讯接口、网络接口等外围部分,其硬件构成如图1所示。

  

 

  图1 车载导航体系的硬件渠道构成

  HMS30C7202嵌入式微处理器选用16/32位精简指令集,具有高性价比,低功耗,高功能的特色,为掌上设备和一般类型运用供给了小型微控制器的解决方案。为了削减总的体系耗费,HMS30C7202包含了以下部分:独立的16KB指令缓存和16KB数据缓存,MMU,LCD控制器(STN/TFT),NAND Flash发动加载器,存储办理器(片选逻辑与SDRAM 控制器)。

  3通道的UART ,4通道的DMA,4通道的脉宽调制定时器,I/O端口,RTC实时时钟,8通道10位的A/D控制器及触摸屏接口,IIC接口,IIS接口,音频接口,USB 主机,USB设备,SD主机/多媒体卡接口,2通道的SPI,摄像头接口,PLL时钟发生器以及电源办理等。

  3 依据Linux 的软件体系规划

  3.1 软件功能与组成

  体系的软件包含嵌入式操作体系、GUI图形用户界面、运用程序三个部分,其间嵌入式操作体系和GUI图形用户界面归于要害技术,它们的好坏决议了体系能否得到成功的运用。运用程序树立在嵌入式操作体系和GUI 图形用户界面之上,上电之后发动进程如图2所示。在本软件规划中,操作体系选用运用广泛的内核源代码敞开的嵌入式Linux,GUI图形用户界面选用源代码开发的Micro windows 。

  

 

  图2 上电之后体系发动进程

  3.2 穿插编译环境的树立

  在满意体系安稳、安全、牢靠的基础上,嵌入式产品的体积要尽或许小,然后不能够供给满足的资源供编译进程运用,因而,有必要树立一种穿插编译的环境,即在高功能的宿主机上对行将运转于方针机上的程序进行编译,生成可在方针机上能够运转的代码格局,然后下载到方针机中运转。Linux环境下运用GNU 东西完结编译、链接等进程,包含针对方针体系的编译器gcc、针对方针体系的二进制东西binutils 、针对方针体系的规范c库glibc和针对方针体系的Linux 内核头文件。

  在linux的根目录下,经过指令tar lxvf cross-2.95.3.tar.bz2 进行解紧缩,履行结束之后在/usr/local/目录下主动生成arm/2.95.3目录,进入2.93.3目录下能够看到arm-linux 、bin、include 、lib 等各种目录,阐明穿插编译东西设备结束,编译环境现已树立起来了。

  3.3 引导程序的移植

  受嵌入式体系资源的约束,嵌入式体系的引导程序并不像PC机上的引导程序相同是由BIOS和坐落硬盘MBR中的引导程序组成,整个体系的引导加载使命首要是由一个称为BootLoader的引导程序来完结的。BootLoader是体系复位后首要要履行的代码,首要作用是初始化硬件设备、树立内存空间的映射等,将体系的软硬件环境带到一个适宜的状况,然后为操作体系和运用程序的调用树立一个杰出的环境。

  体系的软件规划中选用的引导程序是韩国Mizi公司开发的BootLoader–vivi 。在嵌入式体系中,BootLoader是高度依靠于硬件的,在嵌入式体系中树立一个通用的BootLoader几乎是不或许,因而关于每一种特定的渠道,都要移植一个BootLoader。能够说树立一个与渠道配套的、易于运用的BootLoader,是软件规划的要害一步。

  针对本体系的引导程序移植的思路是找到一个与所规划的渠道最附近的渠道的BootLoader,然后依据所规划渠道的硬件参数对BootLoader进行修正,然后完结BootLoader的移植。首要依据实践情况修正vivi工程办理文件Makefile文件中的相关参数,包含穿插编译器库和头文件途径,穿插编译开关选项设置,Linux内核代码中的库和头文件途径等。然后依据硬件渠道的参数修正相应的装备,如处理器时钟、存储器初始化、通用I/O初始化等等。然后进行装备、编译生成可履行的代码。

  3.4 内核的移植

  因为嵌入式体系是针对特定运用的,并且资源有限,所以规范Linux无法运用到嵌入式体系中,因而有必要依据实践情况对Linux进行裁剪、装备,然后发生一个适用的嵌入式Linux操作体系。Linux内核的移植包含获取源代码、修正设置、削减装备和编译。

  3.4.1 获取源代码

  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.4.2 削减装备及编译

  修正完内核设置后,就能够对内核进行削减装备及编译了,在装备中取舍掉冗余的部分,使编译生成的终究的内核的映像文件代码量尽或许小。履行如下指令:

  # make menuconfig

  进入装备菜单,挑选处理器类型和所需求的各种外设、协议的支撑等等, 包含了LCD、触摸屏、串口、声响、EXT2、FAT 和JFFS2文件体系以及TCPIP协议的支撑。

  # make dep

  查找Linux 编译输出与源代码之间的依靠联系,并生成依靠文件。

  # make zImage

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

  3.5 驱动程序的编写

  驱动程序是操作体系内核和底层硬件之间的接口,驱动程序为运用程序屏蔽了硬件的细节,经过驱动程序,运用程序对硬件的操作能够像对一般的文件操作相同便利。驱动程序的首要作用是初始化和开释硬件设备,检测和处理硬件设备呈现的问题,在运用程序、内核和底层硬件之间传输数据。

  因为嵌入式体系是针对详细运用的,因而,应该依据详细的渠道编写相应设备的驱动程序,以便利运用程序对底层硬件的拜访。每一个体系调用都对应着file_operations结构的每一个成员,编写驱动程序首要是编写底层设备需求的各个操作函数并填充结构file_operations,该结构在/include/Linux/fs.h文件中界说。

  驱动程序经过设备名、主设备号和从设备号与详细的硬件相联系。驱动程序能够以动态或许静态方法加载到内核傍边,在调试阶段,一般以动态的方法加载驱动程序,而在终究构成产品时,增加到内核傍边,每次发动内核时主动加载。

  3.6 根文件体系

  一个嵌入式产品的安稳运转,除了引导程序、内核之外,还有必要有一个区域用来为用户供给支撑架构和用户运用的运用软件,寄存数据读写的成果,这个区域便是根文件体系。嵌入式体系中一般运用的根文件体系有:Romfs、Cramfs、Ramfs、JFFS2、EXT2等,别的根文件体系既能够树立在RAMDISK上,也能够树立在Flash上,在RAMDISK上树立根文件体系Cramfs。

  4 结束语

  本研讨具获得了以下立异:

  (1)规划了以HMS30C7202为中心的车载导航设备的硬件体系及其LCD液晶显现模块、存储器模块(Flash、SDRAM)、GPS模块、串行接口、USB接口、IrDA红外通讯接口和网络接口等外围部分。

  (2)树立了软件规划的穿插编译的环境,完结了以HMS30C7202为中心的车载导航设备的软件规划。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/299262.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部