本章主要学的是传统嵌入式开发与Android系统之间的关系。
首先介绍的是嵌入式系统,按照IEEE的定义,嵌入式系统是用来控制,监控活辅助操作机器,装置,工厂大规模系统的设备。一般的定义则是表示:嵌入式是指以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专用计算机。由于嵌入式系统具有以下一些特点:(1)专用、软硬件可剪裁配置。 (2)低功耗、高可靠性、高稳定性。 (3)软件代码短小精悍。 (4)代码可固化 (5)实时性 (6)弱交互性 (7)嵌入式系统软件开发通常需要专门的开发工具和开发环境。 (8)要求开发、设计人员有较高的技能。因此嵌入式系统最近几年的发展也是越来越迅速。
嵌入式系统是由三部分组成,应用软件,嵌入式操作系统和硬件设备,这三部分又可以分为小得其他部分。
通常基于linux系统的嵌入式开发步骤如下:
1)、开发目标硬件系统:
如选择微处理器、Flash及其它外设等
2)、建立交叉开发环境:
安装交叉编译工具链、配置串口通信工具、配置网络通信工具等
3)、开发Bootloader: 移植Bootloader,如vivi
4)、移植linux内核: 如linux2.4.18内核移植
5)、开发根文件系统: 如CRAMFS文件系统的制作
6)、开发相关硬件的驱动程序:如LCD、网卡、GPIO等
7)、开发上层的应用程序:如网络、QT GUI开发
5、交叉编译链介绍
1)、本地编译:
在当前平台编译,编译得到的程序也在本地执行,这时所使用的编译器称为本地编译器
2)、交叉编译:
在一种平台上编译出能运行在体系结构不同的另一种平台上的程序,比如在X86平台上编译出能运行于ARM平台上的程序,这时所使用的编译器称为交叉编译器
3)、在编译Linux内核和应用程序之前,由于一般嵌入式开发系统存储大小有限,通常都要在性能优越的PC机上建立一个用于目标机的交叉编译工具链,用该交叉编译工具链在PC上编译出目标机上要运行的程序
4)、交叉编译工具链主要由binutils、gcc、glibc 3个部分组成
5)、编译交叉编译工具链是一个非常复杂的过程,但一般网上有已经编译好的工具链可以下载
常用的交叉编译器版本如下:
2.95.3、3.3.2、3.4.1、4.3.2等