张占昭
摘要:随着计算机智能化技术的深入发展,计算机迎来了嵌入式系统时代,其产品也越来越丰富,市场价值不言而喻。作为嵌入式系统的硬件代表产品ARM和软件产品Linux也得到了前所未有的发展,如何将ARM平台下Linux嵌入式系统进行移植就显得尤为重要,本文分析了组成嵌入式系统的软件Linux和硬件平台ARM,然后详细介绍了将Linux系统移植到ARM平台上的具体方法,旨在将理论研究应用到具体嵌入式产品中。
关键词:Linux;ARM平台;嵌入式系统
DOI:10.16640/j.cnki.37-1222/t.2018.02.097
1嵌入式系统
嵌入式系统和其他的计算机系统一样,由计算机硬件和软件组成,其中计算机硬件最成功的作品就是ARM系列;计算机软件最优代表性的就是Linux系统。嵌入式系统是后计算机时代的发展必然,它以“私人订制”式应用为核心的计算机相关技术,满足特定人群和厂家的个性化需要,所以要求相关硬件和软件必须可以灵活的增加和减少这个特性,其产品也必须是功能可靠;大小可以灵活改变;成本和功耗越低越好,待机时间越长越好。
ARM最为嵌入式系统最成功的架构硬件平台,换句话说,现在的嵌入式系统硬件平台几乎80%来源于ARM。主流的操作系统均可以应用于ARM硬件平台,Linux系统也不列外。ARM著名的产品有ARM7、ARM9、ARM9E、ARM10、ARM10E等,并且较以往的硬件平台,ARM将位数扩展为32位,功能大大加强,也为其架构智能化的软件系统打下了基础;与传统计算机CPU不同的是,ARM将内存和I/O设备统一编址,简化了指令系统,指令运用更加灵活,效率也就越高;ARM同时使用了大量的寄存器来代替存储器,大大提升了运行速度,编址方式采用是大端和小端格式相结合的方式,组织形式更加灵活方便。
Linux系统是一个开源的操作系统,源代码完全公开,每个版本均可在Linux官网下载使用,这个特性满足了嵌入式系统的核心要求,也就是代码可以根据需要灵活的裁剪,同时它还可以运行于普通PC机和任何智能终端当中,据统计,在现有的智能设计中,有50%左右的软件系统平台使用Linux,内核的配置可以模块化进行,组合十分灵活;Linux一个重要是编译方便,普通的简单代码可利用Gcc进行编译,模块化的代码可使用Make进行统一编译,一次编译,修改代码后,下次编译只对修改后的代码进行编译,节省了编译时间,提高了编译的灵活性,大大提升了代码开发效率。
Linux操作系统主要由引导程序、内核程序和根文件系统组成。Linux系统的移植性是它的核心优势,方法是将普通PC计算机上安装Linux系统(可单独安装和虚拟机),然后交叉编译,然后通过串口或者模拟串口将编译后的程序下载到宿主机上,调试运行即可,对I/O设备的修改也就更加方便,软件和硬件的调试更加灵活自如。
2 ARM平台下Linux嵌入式系统的移植
Linux系统引导程序和普通计算机的引导程序类似,也就是我们熟悉的BIOS,离硬件最近的软件程序,具体作用是嵌入式系统中软件和硬件的桥梁,移植具体步骤首先在物理地址00000000H处放置一条无条件转移指令,跳到系统程序入口处,然后进行硬件初始化操作,包括I/O设备、ARM、存储器、高速缓存、串口和并口、液晶显示器驱动等。移植的关键是编写程序即Boodoader,使用它的目的是提高引导程序和硬件初始化时更加安全可靠,并对硬件进行解析,加快移植的效率。
ARM平台下Linux系统内核的移植就是将程序员开发的程序(实质是内核文件的裁剪)通过通讯方式下载到开发产品上,这就涉及了Linux的文件系统,包括kenel、boot、lib、arch、roach等文件目录,具体操作如下:第一步配置地址,包括计算机的IP地址、宿主机的IP地址、虚拟机的IP地址等;第二步配置文件的设置,包括XShell通讯文件(WindowsXP系统可以用超级终端)、模拟终端接口、Menuconfig文件等;第三步制作Makefile文件,然后Make编译调试。
Linux系统的根文件类型主要有ext2、JFFS2、CRAFS、CMPFS等,根文件系统的配置原则是根据系统的需要来选择,例如内存允许,就选CRAFS。
3结语
本文提出了组成嵌入式系統的硬件和软件,即ARM和Linux,进而分析了其无可比拟的优越性,提出Linux操作系统主要由引导程序、内核程序和根文件系统组成,并且给出这三类程序具体的移植方法和步骤。