基于arm9的linux操作系统移植---大学毕业(论文)设计.doc
《基于arm9的linux操作系统移植---大学毕业(论文)设计.doc》由会员分享,可在线阅读,更多相关《基于arm9的linux操作系统移植---大学毕业(论文)设计.doc(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于ARM9的LINUX操作系统移植Transplantation of Linux Operation System Based on ARM9摘 要随着电子技术的不断更新,嵌入式已经涉及到各行各业了,在智能家电,数字移动终端等这些行业嵌入式软件开发的需求下,嵌入式集成开发环境已经成为目前嵌入式系统发展的趋势。Linux作为优秀的开源操作系统软件被广泛应用到嵌入式操作系统中,它的实用性,可移植性,支持大容量的内存,MMU(微控制器)和I/O系统等得到了体现。本次设计主要研究了嵌入式Linux系统从PC机向开发板上移植的过程,硬件平台是基于CPU:三星S3C2440A,采用ARM920T 内核
2、,主频400MHZ。本文介绍了嵌入式系统的概念和现状以及嵌入式系统的开发模式,介绍了内核启动流程,对Bootloader启动进行了分析,移植了Linux内核,移植了文件系统yaffs以及自己的LED程序移植。以上烧写的文件均是官网下载的,这样可以使得Linux在开发板上更流畅的运行。本次设计成功的将嵌入式Linux系统移植到了FL2440开发板,文件系统运行正常,可通过触摸屏进行操作,LED程序调试成功,并在开发板上得到了运行结果。对以后Linux开发打下了很好的基础。关键词:嵌入式系统 Linux Bootloader 文件系统AbstractAlong with the continuou
3、s renewal of electronic technology, the development of embedded system has become the mainstream of science and technology, under the requirements of embedded software development in the intelligent home appliance, digital mobile industry, the embedded integrated development environment has become t
4、he trend of the development of the embedded system at present. Linux as excellent open source operating system software has been widely applied to embedded operating system,whose featares such of practical applicability, portability, supporting large capacity memory, MMU (microcontroller) and I/O sy
5、stem have been reflected.Mainly from the PC to transplant process the embedded Linux system are studied on the development board, hardware platform is based on CPU: samsung S3C2440A, adopted ARM920T kernel, dominant frequency 400 MHZ. This paper introduces the concept of embedded system and the stat
6、us quo and development mode of the embedded system, the kernel boot process is introduced, the Bootloader startup was analyzed, and the transplantation of the Linux kernel, transplant yaffs file system as well as their own LED transplant program. The above writing files are the official website to d
7、ownload, so you can make the Linux more smoothly in the development board to run.The design successful porting embedded Linux system to FL2440 development board, file system running normal, can be operated by touch screen, LED program debugging is successful, and gets the results on the development
8、board. For future study Linux development laid a good foundation.Key words: embedded system Linux Bootloader file system目 录摘要IAbstractII绪论11 嵌入式Linux系统构成和软件开发环境51.1嵌入式Linux系统的体系结构51.2 嵌入式Linux系统硬件平台51.2.1 S3C2440A处理器简介51.2.2 硬件系统整体结构71.3 嵌入式Linux开发软件平台建立121.3.1 ADS1.2 集成开发环境121.3.2 DNW串口调试软件122 嵌入式L
9、inux的引导BootLoader程序142.1 BootLoader概述142.2 NAND Flash和NOR Flash的区别142.3 BootLoader移植153 Linux内核的编译、移植213.1 Linux2.6内核的新特性简介213.2 Linux内核启动流程213.3 内核移植的实现224 移植文件系统yaffs244.1 yaffs文件系统简介244.2 yaffs文件系统移植的实现245 移植自己的程序305.1 移植开机画面305.2 移植LED程序31结论33致谢34参考文献35绪 论研究的背景及意义随着计算机技术、通信技术以及Internet的飞速发展。嵌入式系
10、统已得到越来越广泛的应用。以此同时,嵌入式系统也变得更加的复杂多样,嵌入式操作系统已经成为其中最重要的组成部分。根据IEEE(国际电机工程师协会)的定义,嵌入式系统是“控制、监视或者辅助机器和设备运行的装置”(原文为:Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants )。这主要是从应用上加以定义的,从定义之中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。从历史性、本质性、普遍性出发,嵌入式系统可以定义为:“嵌入到对象体系中的专用计算机系统”。“嵌入
11、性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素,对象系统则是指嵌入式系统所嵌入的宿主系统。不过上述定义并不能充分体现出嵌入式系统的精髓,目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序。应用程序控制着系统的运作
12、和行为,而操作系统控制着应用程序与硬件的交互作用。嵌入式系统是将先进的半导体技术、计算机技、电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式系统同PC系统相比具有以下特点:(1) 嵌入式系统功耗低、体积小、专用性强。嵌入式系统与PC的最大不同就是CPU大多工作在特定用户群设计的系统中。能够把PC中许多由电路板完成的任务集成在芯片内部,从而有利于嵌入式系统趋于小型化系统设计。(2) 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储芯片或单片机本身中,而不是存储与磁盘等载体中。(3) 嵌入式系统的硬件
13、和软件都必须高效率地设计,系统要精简。操作系统一般和应用软件集成在一起。(4) 对软件代码质量要求很高,应该尽最大可能避免“死机”的发生。(5) 嵌入式系统开发需要专门的开发工具和开发环境。嵌入式设备能得到用户的喜爱,最重要的原因就是它能提供非常友好的用户界面、图形界面和灵活的控制方式。这就要求嵌入式软件设计者要在图形界面、多媒体技术上多下功夫(这样可以使客户更轻松方便的使用嵌入式产品)。目前,市场上存在的众多的嵌入式操作系统,而在这些系统之中,兼有Linux和嵌入式优点的嵌入式Linux操作系统,凭借其在结构清晰、源代码开放性、裁剪性好,开发与使用均易实现等方面的优势,拥有巨大的市场前景和商
14、业机会。当前嵌入式Linux的一个热点应用就是将Linux内核移植到一些典型的微控制器和微处理器上,提供操作系统层面支持,以实现嵌入式系统用软件的开发。系统地研究嵌入式Linux系统的移植有很大的现实意义。首先,可以增加对S3C2440A以微处理器、内置外设以及系统扩展的了解,有助于将来的嵌入式学习。其次,可以熟悉嵌入式软件系统移植的整个过程,对该过程有整体上的把握,对后续的嵌入式系统开发有指导性意义。最后,通过该研究过程可以构建较新版的软件系统,实现更好的系统性能,最重要的是可以在实践基础上增加对系统移植理论的理解并积累丰富的系统移植经验,为后续的嵌入式应用开发打下坚实的基础。国内外嵌入式系
15、统的发展概况我国国内的嵌入式软件市场已处于整体启动阶段。国内嵌入式软件市场未来的发展重点在于对应用范围的拓展。随着Internet的发展以及Internet技术在信息家电、工业控制技术等领域的应用,嵌入式系统与Internet的结合将代表着嵌入式技术的真正未来。嵌入式处理器是嵌入式系统的核心,是辅助、控制系统运行的硬件单元,目前全世界嵌入式处理器的品种总量已经超过1000多种,流行体系结构包括MPU、MCU等三十几个系列,速度越来越快,性能越来越强,价格也越来越低。根据其现状,嵌入式处理器可分成下面几类。(1) 嵌入式微处理器 (Embedded MICroprocssor Unit,EMP)
16、(2) 嵌入式微控制器 (Microcontroller Unit,MCU)(3) 嵌入式DSP处理器(Embedded Digital Signal Processor)(4) 嵌入式片上系统 (System on Chip,SOC)嵌入式操作系统是嵌入式应用软件的基础和开发平台,用户的其它应用程序都建立在操作系统之上。但嵌入式操作系统并不是简单嵌入的操作系统,它与通常意义的操作系统有所区别。嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配和调度工作。Linux是一套以UNIX为基础发展而来的操作系统。自1991年诞生至今,以惊人的速度发展。Linux在很多方面己经赶上甚至超过了很多商用
17、的UNIX系统。它充分利用了x86 CPU的任务切换机制,实现了真正的多任务、多用户环境。Linux对硬件配置的要求相当低,能够在4M内存的386机器上很好的运行。而且可以支持多种处理器芯片。在应用于嵌入式系统方面,Linux己经在许多典型的硬件平台上实现了移植,这些平台包括ARM、MIPS、PowerPC等。随着Linux2.6内核的发布,Linux向现有主流的RTOS提供商在嵌入式系统市场提出了巨大挑战,将成为更优秀的嵌入式操作系统。Linux2.6在内核主体中加入了提高中断性能和调度响应时间的改进,其中有三个最显著的改进:采用可抢占内核、更加有效的调度算法以及同步性的提高。本课题以飞凌嵌
18、入式技术有限公司的以S3C2440A为核心的ARM9开发板FL2440为硬件开发平台,在此基础上,实现嵌入式Linux系统的移植。在了解了系统移植方法并做了大量的工程实践的基础上,从无到有的建立了一个可用的嵌入式Linux系统,包括移植了功能较强的BootLoader、性能更好的Linux2.6.28版本内核。其移植过程不脱离一般性,但因具体开发环境的不同,移植过程中会涉及到很多具体问题。主要研究内容(1) 建立嵌入式Linux交叉开发环境对于嵌入式系统,目标板一般只有很小的存储空间,处理器频率也较低。直接在这样的硬件上建立Linux系统非常困难。嵌入式Linux交叉开发环境可以很好地解决这个
19、难题,即实现在PC机上编译嵌入式系统要运行的程序。(2) 移植BootLoader引导程序嵌入式Linux内核通常需要目标板上的引导程序引导来引导内核的启动,这些引导程序就是BootLoader。BootLoder所处层次位置如下图1所示。BootLoader在目标板上电的时候运行,主要完成开发板初始化和Linux内核引导的任务。由于BootLoder和CPU及电路板的配置相关,不可能有通用的BootLoader,开发时需要根据具体情况进行移植。本次毕业设计所用的BootLoader是开发板官网上下载的,所以可以更加稳定的在开发板上运行Linux系统。图1 BootLoader所处层次(3)
20、配置、编译、移植Linux内核详细分析了Linux移植的要点,并对目前较新的2.6版Linux内核源码进行了移植、配置和编译。(4) 对文件系统进行移植到开发板。根据内核所支持的文件系统类型选择文件系统,本论文选择触屏yaffs文件系统并移植。1 嵌入式Linux系统构成和软件开发环境1.1 嵌入式Linux系统的体系结构除了硬件系统外,嵌入式Linux系统需要有下面三个基本元素:系统引导程序BootLoader(用于设备加电后的系统定位引导)、Linux内核(内存管理、程序管理)、初始化进程。但如果要它成为完整的操作系统并继续保持小型化还必须加上硬件驱动程序、硬件接口程序和应用程序组。最终可
21、用的嵌入式Linux系统体系结构如表1-1所示:表1-1 嵌入式Linux系统体系结构应用软件应用层嵌入式GUI图形支持支持层BOOTLOADER、LINUX KERNEL、DRIVERS系统层嵌入式开发板实验板(本论文使用SAMSUNG S3C2440A)硬件层硬件层是操作系统的基础,所有软件都建立在它的基础上,系统层的BootLoader是嵌入式系统软件的最底层,是上电后运行的第一个程序,类似于PC机上的BIOS,完成对硬件的初始化和内核加载,驱动程序作为系统内核的一部分,实现操作系统内核和硬件设备之间的接口,为应用程序屏蔽硬件的细节,系统内核主要完成任务管理,调度算法等,GUI图形支持库
22、实现对硬件的抽象、提供基本的图形接口函数和与用户实现交互,而应用软件用来实现某一具体功能。1.2 嵌入式Linux系统硬件平台1.2.1 S3C2440A处理器简介三星公司推出的这款16/32 位RISC 处理器S3C2440A,是面向高端手持设备或其它一般应用而设计的芯片。采用ARM920T 内核,低功耗, 具有高速的处理计算能力。整体设计融合了MMU、AMBA BUS 和Harvard(哈佛)结构。具有独立的16KB 指令Cache 和16KB 数据Cache。其内部结构框图见图1-1:图1-1 S3C2440A结构框图1.2.2 硬件系统整体结构体系结构:(1) 为手持设备和通用嵌入式应
23、用提供片上集成系统解决方案。(2) 16或者32 位RISC 体系结构和ARM920T 内核指令集。(3) 增强的ARM 体系结构MMU 用于支持WinCE,EPOC32 和Linux。(4) 指令高速存储缓冲器(ICache),数据高速存储缓冲器(DCache),写缓冲器和物理地址TAG RAM 减少主存带宽和响应性带来的影响。(5) 采用ARM920T CPU 内核支持ARM 调试体系结构。(6) 内部高级微控制总线(AMBA)体系结构(AMBA2.0,AHB/APB)。系统管理器:(1) 支持大/小端模式。(2) 支持快速总线模式和同步总线模式(3) 寻址空间:每bank 128M 字节
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 arm9 linux 操作系统 移植 大学毕业 论文 设计
限制150内