linux下ARM的交互开发设计研究

2015-01-29 13:26孙弢
2014年36期

作者简介:孙弢(1980-),男,吉林省吉林市人,吉林电子信息职业技术学院,讲师,硕士,主要研究方向:网站开发,嵌入式软件开发。

摘要:随着 ARM芯片以及LINUX操作系统的出现,为嵌入式的发展注入了强劲的活力。本设计实现LINUX操作系统向ARM9平台的移植。U-boot是系统的启动引导程序,要移植LIUNX操作系统,U-boot是必不可少的。LINUX操作系移植成功后,系统还是不能正常启动的,还需要根文件系统(rootfs)支持,这样系统就可以正常启动。但是嵌入式系统往往是为某些特定的功能设计的,所以,系统要想完成某些功能,还需要顶层应用程序的支持。

关键词:U-boot;内核配置;根文件系统

随着嵌入式技术的发展,嵌入式的应用领域也越来越广泛。随着IC设计的发展,出现了工业化ARM芯片,可以说ARM是未来嵌入式开发的主宰。ARM是Advanced RISC Machines的首字母组合,是一类微型处理器的统称。

LINUX操作系统是目前嵌入式操作系统中主流的操作系统,它不同于WINDOWS,LINUX操作系统是完全开源的,这就使嵌入式开发过程大大降低了成本。另外,LINUX操作系统支持多种文件系统,如EXT2、EXT3、MINIX、VFS等等。在ARM开发过程中LINUX操作系统的开发极为重要,LINUX下ARM的BOOTLOAD、内核、文件系统的裁剪、移植、烧录工作以及针对文件系统进行GUI的编写任务,最终形成一成功的GUI界面,成为ARM-LINUX的开发重点。

一、开发平台选择

本设计完成LINUX下ARM的BOOTLOAD、内核、文件系统的烧录工作,同时主要针对文件系统进行GUI的编写任务,最终形成一成功的GUI界面。本设计选用的bootloader 为U-boot,经过编译后生成二进制文件,将其烧写到ARM平台的NAND FLASH中。内核选用LINUX操作系统LINUX 2.6.14.1版本的内核源码,将其进行修改之后移植到ARM9(S3C2410)的芯片上。文件系统采用busybox软件包经过修改用cramfs 工具生成.img映像文件,烧写到NAND FLASH 中。

ARM9是继ARM7之后的新一代的处理器,采用了更多的晶体管进行全新的设计,处理能力超过ARM7处理器达到两倍以上于。ARM9的处理能力的提高主要是提高了时钟频率,降低了指令执行周期。ARM9 系列包括三种处理器:ARM926EJ-S、ARM946E-S 和 ARM968E-S。本设计采用韩国三星公司生产的ARM9TDMI——s3c2410芯片。

ARM9 处理器系列的核心产品是 ARM9TDMI 处理器,该处理器系列整合了 16 位的 Thumb 指令集。ARM9E 处理器系列能够为微控制器、DSP 和 Java 应用程序提供单处理器解决方案。ARM9E 系列产品是一些 DSP 增强的 32 位 RISC 处理器,适用于需要综合 DSP 和微控制器性能的应用程序。该产品系列包括 ARM926EJ-S、ARM946E-S、ARM966E-S 和 ARM968E-S 处理器宏单元。其包括信号处理扩展以增强 16 位固定点性能,方式是使用单循环 32 x 16 乘法累积(MAC)单元,并实现了 16 位的 Thumb 指令集。此外,ARM926EJ-S 处理器还采用了 ARM Jazelle 技术,从而能够在硬件中直接执行 Java 字节码。

应用程序是简单的MP3播放器移植,这里做的工作主要是系统的搭建,应用程序只是作为检测系统而作的辅助工作。以此证明系统的可靠、安全、稳定的性质。

二、系统设计

U-Boot是系统构建的第一步。U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。uboot 就是针对某个嵌入式环境特别编译特别准备的一级引导程序。用来初始化环境,并且读取启动 Linux 内核,当然一个在 Linux 内核启动之前就启动的 bootloader 不仅仅有这些功能。U-Boot的其它主要功能还有支持NFS挂载、RAMDISK形式的根文件系统支持NFS挂载、从FLASH中引导压缩或非压缩系统内核;可灵活设置、传递多个关键参数给操作系统,适合系统在不同开发阶段的调试要求与产品发布,尤其对LINUX支持最为强劲。目前,U-Boot优势突显示,对于研究于开放源代码BOOT LOADER移植工作的嵌入式开发人员正将各个不同系列嵌入式处理器进行不断地移植并深入展开,用来支持更多的嵌入式操作系统的装载与引导。

因为我们的目标板是arm体系的平台,所以不能只单纯的用主机上的编译工具直接编译,那样就会造成程序无法运行,最终导致移植工程失败。所以我们将要GCC编译工具进行改装,生成交叉工具。

有了U-boot和交叉编译工具,接下来就要对内核进行配置。今天的LINUX是全球被最广泛移植的操作系统内核。从掌上电脑iPAQ到IBM S/390,甚至于有人成功的将LINUX内核在新力出品的游戏机PS2及PS3和微软出品的游戏机Xbox上使用。

LINUX也是IBM “Blue Gene” Blue Gene的操作系统。直至2008年11月,全球前五百大超级电脑(TOP 500)有高达87.8%的比例采用LINUX为它们的作业系统,最快的超级电脑IBM_Roadrunner正是采用LINUX的。

文件系统是LINUX操作系统的精髓所在也是重要的组成部分,LINUX的文件系统的功能是强大的。文件系统不仅包含着文件中的数据而且还有文件系统的目录结构,所有LINUX的 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。

三、总结

linux操作系统为用户进程与硬件设备进行交互,提供系统服务并提供了一组接口。在应用程序和硬件之间,linux内核提供的系统服务拥有很多优点,第一,linux内核提供的系统服务让编程更加简单容易,使用户从学习硬件设备的低级编程特性中解放出来;第二,linux内核提供的系统服务具有非常高的系统安全性,内核在满足每个请求应答之前,接口级都要检查这种请求的正确性。最后也是最重要的是这些接口使得程序具有可移植性,因为只要内核所提供的一组接口相同,那么在任一內核之上就可以正确地编译和执行程序。

在ARM平台上移植linux操作系统作为实现设备小型化、智能化的一个重要元素,目前己经广泛应用于国防、工业、交通、能源、信息技术以及日常生活等各个领域,研究和开发linux操作系统在ARM平台上的移植具有重要的现实意义。(作者单位:吉林电子信息职业技术学院)

参考文献:

[1]杜春雷 编著. ARM体系结构与编程.清华大学出版社. 2003,84~116

[2]冯国进.嵌入式Linux驱动程序设计从入门到精通.清华大学出版社,25~45

[3]李志LINUX 下的C语言程序设计.清华大学出版社,2005,69~75