王维 陈伟 邹燕飞
摘要:该文介绍了ARM-Linux嵌入式系统平台的构建过程,并基于该平台实现了绘图板,经测试,能正常运行。
关键词:ARM;Linux;嵌入式系统
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)22-0158-01
Abstract: In this paper,the process of building ARM-Linux embedded system platform,and on this platform the drawing board is developed. It is tested correctly.
Key words: ARM;Linux;Embedded Systems
1 简介
嵌入式系统是以计算机技术为基础,软硬件可剪裁,适用于特定应用,并且对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统[1]。目前,嵌入式系统已成为近年来发展很快的计算机方面的学科方向,并迅速渗透到控制、自动化、仪器仪表等学科,主要应用于信息家电、移动计算设备、网络设备、工业控制、仿真、医疗仪器等领域。
嵌入式系统的体系结构包括硬件和软件两大部分,其中硬件部分包括嵌入式处理器及外围设备,软件部分包括嵌入式操作系统和嵌入式应用软件。
2 ARM-Linux嵌入式系统平台构建
嵌入式系统平台的构建包括硬件平台和软件平台两部分,其构建过程如下:
1)嵌入式微处理器的选择
嵌入式微处理器的种类很多,由于ARM处理器具有体积小、功耗和成本低但性能高,同时支持Thumb/ARM指令集,指令长度固定等特点[1],最终选定了博创创科技有限公司的经典ARM9开发板UP-TECH2410,其核心是三星公司的32位ARM920T处理器S3C2410,非常适合嵌入式系统的设计应用。
2)嵌入式操作系统的选择
现在,应用在嵌入式系统中的操作系统很多,如Linux、Windows CE、VxWorks等。嵌入式Linux有着源码开放、支持多种体系结构并支持多种硬件平台的移植、内核可定制、占用资源少、运行稳定且速度快等优势,成为嵌入式系统开发的首选。
3)交叉编译器的构建
由于嵌入式系统硬件上存在存储空间小、处理器频率低、缺少存储、输入输出设备等局限性,一般嵌入式开发采用交叉编译环境, 由宿主机(平时使用的桌面计算机)和目标板(嵌入式开发板)两部分构成。在宿主机上编写代码,并通过交叉编译工具编译出能够在目标板上运行的程序,然后下载到目标板上测试执行,最后利用宿主机上的调试工具对目标板上运行的程序进行远程调试。目标板通过串口、并口或以太网接口和宿主机通信。
4)BootLoader的移植
BootLoader的作用是引导和加载内核。目前BootLoader的版本很多,如vivi、Redboot、U-boot[2]等,不同的BootLoader支持的體系结构有所不同。由于U-boot支持Arm体系结构和Linux操作系统的引导,同时具有一定的通用性,因此选择U-Boot作为引导程序。
5)内核移植
内核移植是指将基于 x86体系的 Linux移植到基于 ARM体系的嵌入式 Linux。内核是嵌入式系统的系统软件,占有非常重要的地位。进行内核移植时先根据硬件体系结构配置内核,然后通过交叉编译器编译内核,最后通过Windows平台的超级终端或Linux平台的Minicom将内核烧写到开发板 [3]。
6)根文件系统的移植
Linux操作系统启动时需要挂载根文件系统才能正常工作,常见的根文件系统有Cramfs、RomFSJFFS2、NFS等。通常选择根文件系统需从是否可写、保存、压缩等方面去选取。由于Cramfs具有简单、压缩只读的特点,非常适合嵌入式系统,因此选择构建Cramfs根文件系统。
嵌入式系统的平台已经基本搭建起来。如果在开发过程中需要使用外围设备,还需开发相应的驱动程序;如不需要,即可进行上层应用程序的开发。
3 基于ARM-Linux平台绘图板的实现
基于ARM-Linux嵌入式系统平台开发了绘图板,主要包括以下三个模块:鼠标绘图模块:可以使用鼠标在画板上自由绘图;工具选择模块:包括画笔的颜色,画笔的线宽,画笔的风格的选择及清除功能;文件选择模块:包括图像文件的打开、保存、退出。 首先在PC机上基于Windows平台使用Qt Windows开发调试绘图板程序,然后将程序移植到Linux操作系统使用Qt/X11重新编译,然后使用Linux平台的Qt/E进行交叉编译生成可执行程序,通过串口或网口下载到ARM平台,重新运行程序。经过测试,在开发板上能够成功运行,画笔颜色选择功能
如图1所示。
4 总结
通过构建ARM-Linux嵌入式系统平台,并基于该平台借助Qt开发环境实现了绘图板程序,经测试程序运行正常,对于从事嵌入式应用开发,具有一定的参考价值。
参考文献:
[1] 陈文智,王总辉.嵌入式系统原理与设计[M].北京:清华大学出版社,2011.
[2] 友善之臂.U-boot使用及移植详细手册[EB/OL].2010.http://www.armq.net
[3] 孙天泽.嵌入式Linux操作系统[M].北京:人民邮电出版社,2009.