7Linux操作系统在ARM9处理器上的移植.pdf
《7Linux操作系统在ARM9处理器上的移植.pdf》由会员分享,可在线阅读,更多相关《7Linux操作系统在ARM9处理器上的移植.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、研究与应用?化工自动化及仪表,2010,37(2):67 69?Control and Instruments in Che m ical IndustryLinux操作系统在 ARM9处理器上的移植王晓宁,王振臣,张少兵,姚?帆(燕山大学 西校区电院 工业计算机控制工程河北省重点实验室,河北 秦皇岛 066004)?摘要:?嵌入式系统在工业生产和日常生活中的应用已经越来越广泛,基于 ARM 的 Linux嵌入式系统更是因其各个方面的优良特性成为当前嵌入式研究的热点。结合实例阐述了 Linux内核移植到 ARM 9芯片 S3C2410的具体实现过程,重点论述了移植过程中的具体方法及需要修改的文
2、件,其中 L inux操作系统选用 Red H at9.0版本,交叉编译工具为 ar m?linux?gcc3.4.1,移植主要内容为:交叉环境的建立,引导程序(BootLoader)移植,内核的移植,最后,将编译好的内核代码通过已经移植好的 BootLoader下载到开发板上,Linux系统就成功的移植到了ARM 处理器中。?关键词:?嵌入式;移植;内核;L inux?中图分类号:TP316?文献标识码:A?文章编号:1000?3932(2010)02?0067?031?引?言随着信息科技和微电子技术的迅速发展,嵌入式系统已经越来越广泛被用于社会、经济的各个领域,从复杂的工业设备、精密的医疗
3、仪器,到随处可见的手机、PDA,嵌入式系统已经与我们现代化的生活息息相关。嵌入式系统发展初期任务较少,功能单一,所以并不需要操作系统的支持。但是,随着其承担的功能的增多且日趋复杂,对系统的要求也越来越高,在这种情况下,像普通计算机一样将操作系统引入到处理器中已成为大势所趋 1。操作系统的引入,可以尽可能有效利用处理器的有限资源,实现CPU 在各个进程之间的最优化切换,必会将嵌入式系统引入到一个前景更加广阔的领域。?2?软硬件平台结构一般来说,嵌入式系统由硬件和软件两部分组成,硬件包括 CPU 及其各种外设的接口,软件则包括嵌入式操作系统和相关的嵌入式应用软件。嵌入式系统的设计开发首先涉及到的即
4、是处理器(CPU)的选择,这是嵌入式系统的基础。目前,市场上的 CPU种类繁多,包括 X86系列、ARM 系列及其他一 些 专 用 的 CPU。本 文 所 用 到 的 CPU 为S3C2410,是 SAM SUNG 公司生产的 ARM9 系列芯片。S3C2410主频为 203MHz,带有 MMU(内存管理单元),支持 Linux系统的移植嵌入。除此之外,该处理器拥有:独立的 16KB的指令 Cache和 16KB数据 Cache、支持 TFT的 LCD控制器、NAND闪存控制器、三路 UART、四路 DMA、四路带 PWM 的 Tm i er、I/O口、RTC、Touchscreen接口、两个
5、 USB主机、一个USB设备、SD主机和 MMC接口、两路 SPI O 1。操作系统也是嵌入式系统的重要组成部分。当今的嵌入式操作系统各种各样,有 Vx W orks、QNX、Pal m OS、W indows CE、Linux、?Clinux、?C/OS?II、Nu?clues等,每种操作系统都有其与众不同之处。本文选用的将要移植的嵌入式操作系统为如今在各领域中广泛应用的 Linux。Linux是以 Unix为基础而发展起来的操作系统,其最大优点是源代码公开,可以任意剪裁和修改后将其移植入自己的硬件平台上,因此可以说是嵌入式操作系统的最佳选择。3?移植过程分析嵌入式 L inux系统的开发是
6、一个庞大的工程,在硬件搭建完毕之后,主要是下面几个基本的步骤:?系统引导程序 BootLoader编写(用于设备加电后的系统定位引导);L inux微内核的编译(内存管理、程序管理);!进程的初始化。除此之外,如果要成为完整的操作系统并继续保持小型化还必须加上硬件驱动程序、硬件接口程序和应用程序等。可见,嵌入式 Linux操作系统开发具有一定的层次性,应按其结构自下而上逐层进行,如图 1所示。图 1?嵌入式系统的体系结构图?收稿日期:2009?12?28(修改稿)?Boot Loader(引导装载器)是嵌入式系统移植的第一个环节。Boot Loader是操作系统内核启动前运行的一段小程序,其主
7、要任务为初始化目标板硬件,给嵌入式系统提供板上的硬件资源信息,并进一步装载、引导嵌入式系统的固件,其作用相当于我们普通电脑中的 BIOS 2。因此,嵌入式系统移植的第一步就是要移植一个适合硬件系统的 Boot Loader。实验中所使用到的 Boot Loader为 V ivi。V ivi是韩国 M izi公司开发的一种针对 ARM9处理器的 BootLoader。在进行移植以前,必须先对 L inux的启动过程加以了解,通常 L inux的启动过程为:一个不隶属于任何操作系统的加载程序将 Linux部分内核调入内存,并将控制权交给内存中 Linux内核的第一行代码,加载程序的工作就完成了。此
8、后 L inux将自己的剩余部分全部加载到内存,并初始化所有设备,在内存中建立好自己所需的数据结构(有关进程、设备、内存等)。内核加载设备并启动 in it守护进程,init守护进程会根据配置文件加载文件系统,配置网络、服务进程、终端等。初始化完成以后,系统启动,就可以看到系统的欢迎界面了。简而言之,内核部分初始化并控制大部分硬件,为内存管理、进程管理设备读写等工作做好一切准备;系统部分加载必须的设备,配置各种环境以便用户可以使用整个系统。可见,Linux移植过程的关键是其内核的移植,内核移植出现问题的话,后面的工作就将无法展开,Linux内核启动就是通过调用一系列的内核函数来实现的,其启动流
9、程图如图 2所示。图 2?L inux启动流程图?由以上的分析可知,L inux的内核是 L inux的心脏,是操作系统的内部核心程序,因此,移植过程中的主要内容就是对 Linux内核的修改和编译。4?移植过程实现4.1?交叉开发环境的建立移植前应当确保在宿主机上已经正确安装了Linux操作系统和 GCC交叉工具编译链,目标板上的 USB接口、串口和 JTAG 已经连接好并且驱动程序安装成功。本实验中宿主机上安装 RedHat9.0版本的 L inux操作系统,交 叉编译工具为 ar m?linux?gcc3.4.1。4.2?引导程序的移植V ivi已经直接提供了对 S3C2410的板级支持和
10、对 ARM 920T 内核的支持,对移植的工作量来说减轻了不少。在移植时,首先应修改 V ivi的工程管理文件 makefile文件中有关编译时要用到的函数库和交叉工具编译链的选项,主要是 CROSS_CMPILE、LI NUX_I NCLUDE_D I R、ARM _GCC _LIBS 这三个文件,其中 CROSS_CMPILE和 LI NUX_ I NCLUDE_DIR的路径要改为其在交叉工具编译链中对应的目录;LI NUX_I NCLUDE_D I R 的路径要设置为/ho me/ker?nel/include3。在对 V ivi进行必要的修改和重新配置后,就可以对其执行 make#命令
11、进行编译,编译通过后,用JTAG将编译好的 V ivi烧写至 Flash中。4.3?内核的移植移植前,首先在 Linux的/home下建立存放内核源 码 的 文 件 夹,实 验 中 为/home/jesfei/Linux?2.6.12。在宿主机 L inux系统下把要移植的内核源码解压至目标 文件夹,采用 的 Linux内 核版本为2.6.12。在 L inux内核移植的初始阶段,应尽量构造一个最小内核,使嵌入式的 L inux系统保持小型化和开发、应用所需要的基本功能即可,这样内核支持的选项尽可能少,可以减少移植过程的工作量和避免出现开发后期某些功能无法实现的问题。在确保己经进行的内核移植操
12、作正确后,即可逐步地添加相应的硬件支持和功能支持。移植过程中,首先要进行的也是最主要的工作是修改 L inux操作系统中和 CPU体系结构相关的代码,这些代码主要存储在 Linux内核目录中的/arch目录下,其中绝大部分与 ARM 相关的代码存储在/arch/ar m中,它所 需要的 头文件 存储在/include/asm?ar m中,所以,移植过程的重点也就集中在此文件夹中,移植过程中需要修改和添加的文件大致如表 1所示 3。68化工 自动化及 仪表?第 37卷?表 1?部分需要修改的内核源码表需要修改文件路径需要修改文件列表/m akefile/arch/ar m/m akefile;c
13、onfigure.in/arch/ar m/tools/m ath?types/arch/ar m/boot/m akefile/arch/ar m/boot/co mpressedhead?s3c2410.s;makefile/arch/ar m/kernel/debug?ar mv.s;entry?ar mv.s;head?ar mv.s;m akefile;sesetup.c/arch/ar m/mm/mm?ar mv.c;makefile/arch/ar m/m atch?s3c2410/Irq.c;arch.c;mm.c;tm i e.c,m atch?amdk2410.c,devs
14、.c;/include/as m?ar m/arch?s3c2410/s3c2410.h;irq.h;seria.l h;io.h;syste m.h;tm i e.h;tm i ex.h;cpu_s3c2410.h等这些文件的具体功能为:/makefile指定系统框架和交叉工具编译链,组织内核的各个模块,记录各个模块的相互联系;/arch/ar m/config.in对系统平台的选项以及处理器进行配置;/arch/ar m/makefile定义系统平台编译选项和内容;/arch/ar m/mm对内存页表内存管理映射进行初始化;/arch/ar m/match?s3c2410添加 s3c241
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 操作系统 ARM9 处理器 移植
限制150内