学士学位论文基于arm9的linux操作系统移植.docx

上传人:b****6 文档编号:8796804 上传时间:2023-02-01 格式:DOCX 页数:32 大小:1.04MB
下载 相关 举报
学士学位论文基于arm9的linux操作系统移植.docx_第1页
第1页 / 共32页
学士学位论文基于arm9的linux操作系统移植.docx_第2页
第2页 / 共32页
学士学位论文基于arm9的linux操作系统移植.docx_第3页
第3页 / 共32页
学士学位论文基于arm9的linux操作系统移植.docx_第4页
第4页 / 共32页
学士学位论文基于arm9的linux操作系统移植.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

学士学位论文基于arm9的linux操作系统移植.docx

《学士学位论文基于arm9的linux操作系统移植.docx》由会员分享,可在线阅读,更多相关《学士学位论文基于arm9的linux操作系统移植.docx(32页珍藏版)》请在冰豆网上搜索。

学士学位论文基于arm9的linux操作系统移植.docx

学士学位论文基于arm9的linux操作系统移植

 

基于ARM9的LINUX操作系统移植

TransplantationofLinuxOperationSystemBasedonARM9

摘要

随着电子技术的不断更新,嵌入式已经涉及到各行各业了,在智能家电,数字移动终端等这些行业嵌入式软件开发的需求下,嵌入式集成开发环境已经成为目前嵌入式系统发展的趋势。

Linux作为优秀的开源操作系统软件被广泛应用到嵌入式操作系统中,它的实用性,可移植性,支持大容量的内存,MMU(微控制器)和I/O系统等得到了体现。

本次设计主要研究了嵌入式Linux系统从PC机向开发板上移植的过程,硬件平台是基于CPU:

三星S3C2440A,采用ARM920T内核,主频400MHZ。

本文介绍了嵌入式系统的概念和现状以及嵌入式系统的开发模式,介绍了内核启动流程,对Bootloader启动进行了分析,移植了Linux内核,移植了文件系统yaffs以及自己的LED程序移植。

以上烧写的文件均是官网下载的,这样可以使得Linux在开发板上更流畅的运行。

本次设计成功的将嵌入式Linux系统移植到了FL2440开发板,文件系统运行正常,可通过触摸屏进行操作,LED程序调试成功,并在开发板上得到了运行结果。

对以后Linux开发打下了很好的基础。

关键词:

嵌入式系统LinuxBootloader文件系统

 

Abstract

Alongwiththecontinuousrenewalofelectronictechnology,thedevelopmentofembeddedsystemhasbecomethemainstreamofscienceandtechnology,undertherequirementsofembeddedsoftwaredevelopmentintheintelligenthomeappliance,digitalmobileindustry,theembeddedintegrateddevelopmentenvironmenthasbecomethetrendofthedevelopmentoftheembeddedsystematpresent.Linuxasexcellentopensourceoperatingsystemsoftwarehasbeenwidelyappliedtoembeddedoperatingsystem,whosefeataressuchofpracticalapplicability,portability,supportinglargecapacitymemory,MMU(microcontroller)andI/Osystemhavebeenreflected.

MainlyfromthePCtotransplantprocesstheembeddedLinuxsystemarestudiedonthedevelopmentboard,hardwareplatformisbasedonCPU:

samsungS3C2440A,adoptedARM920Tkernel,dominantfrequency400MHZ.Thispaperintroducestheconceptofembeddedsystemandthestatusquoanddevelopmentmodeoftheembeddedsystem,thekernelbootprocessisintroduced,theBootloaderstartupwasanalyzed,andthetransplantationoftheLinuxkernel,transplantyaffsfilesystemaswellastheirownLEDtransplantprogram.Theabovewritingfilesaretheofficialwebsitetodownload,soyoucanmaketheLinuxmoresmoothlyinthedevelopmentboardtorun.

ThedesignsuccessfulportingembeddedLinuxsystemtoFL2440developmentboard,filesystemrunningnormal,canbeoperatedbytouchscreen,LEDprogramdebuggingissuccessful,andgetstheresultsonthedevelopmentboard.ForfuturestudyLinuxdevelopmentlaidagoodfoundation.

Keywords:

embeddedsystemLinuxBootloaderfilesystem

 

目录

摘要I

AbstractII

绪论1

1嵌入式Linux系统构成和软件开发环境5

1.1嵌入式Linux系统的体系结构5

1.2嵌入式Linux系统硬件平台5

1.2.1S3C2440A处理器简介5

1.2.2硬件系统整体结构7

1.3嵌入式Linux开发软件平台建立12

1.3.1ADS1.2集成开发环境12

1.3.2DNW串口调试软件12

2嵌入式Linux的引导BootLoader程序14

2.1BootLoader概述14

2.2NANDFlash和NORFlash的区别14

2.3BootLoader移植15

3Linux内核的编译、移植21

3.1Linux2.6内核的新特性简介21

3.2Linux内核启动流程21

3.3内核移植的实现22

4移植文件系统yaffs24

4.1yaffs文件系统简介24

4.2yaffs文件系统移植的实现24

5移植自己的程序30

5.1移植开机画面30

5.2移植LED程序31

结论33

致谢34

参考文献35

绪论

研究的背景及意义

随着计算机技术、通信技术以及Internet的飞速发展。

嵌入式系统已得到越来越广泛的应用。

以此同时,嵌入式系统也变得更加的复杂多样,嵌入式操作系统已经成为其中最重要的组成部分。

根据IEEE(国际电机工程师协会)的定义,嵌入式系统是“控制、监视或者辅助机器和设备运行的装置”(原文为:

DevicesUsedtoControl,MonitororAssisttheOperationofEquipment,MachineryorPlants)。

这主要是从应用上加以定义的,从定义之中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。

从历史性、本质性、普遍性出发,嵌入式系统可以定义为:

“嵌入到对象体系中的专用计算机系统”。

“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素,对象系统则是指嵌入式系统所嵌入的宿主系统。

不过上述定义并不能充分体现出嵌入式系统的精髓,目前国内一个普遍被认同的定义是:

以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。

嵌入式系统一般指非PC系统,它包括硬件和软件两部分。

硬件包括处理器、存储器及外设器件和I/O端口、图形控制器等。

软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序。

应用程序控制着系统的运作和行为,而操作系统控制着应用程序与硬件的交互作用。

嵌入式系统是将先进的半导体技术、计算机技、电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。

嵌入式系统同PC系统相比具有以下特点:

(1)嵌入式系统功耗低、体积小、专用性强。

嵌入式系统与PC的最大不同就是CPU大多工作在特定用户群设计的系统中。

能够把PC中许多由电路板完成的任务集成在芯片内部,从而有利于嵌入式系统趋于小型化系统设计。

(2)为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储芯片或单片机本身中,而不是存储与磁盘等载体中。

(3)嵌入式系统的硬件和软件都必须高效率地设计,系统要精简。

操作系统一般和应用软件集成在一起。

(4)对软件代码质量要求很高,应该尽最大可能避免“死机”的发生。

(5)嵌入式系统开发需要专门的开发工具和开发环境。

嵌入式设备能得到用户的喜爱,最重要的原因就是它能提供非常友好的用户界面、图形界面和灵活的控制方式。

这就要求嵌入式软件设计者要在图形界面、多媒体技术上多下功夫(这样可以使客户更轻松方便的使用嵌入式产品)。

目前,市场上存在的众多的嵌入式操作系统,而在这些系统之中,兼有Linux和嵌入式优点的嵌入式Linux操作系统,凭借其在结构清晰、源代码开放性、裁剪性好,开发与使用均易实现等方面的优势,拥有巨大的市场前景和商业机会。

当前嵌入式Linux的一个热点应用就是将Linux内核移植到一些典型的微控制器和微处理器上,提供操作系统层面支持,以实现嵌入式系统用软件的开发。

系统地研究嵌入式Linux系统的移植有很大的现实意义。

首先,可以增加对S3C2440A以微处理器、内置外设以及系统扩展的了解,有助于将来的嵌入式学习。

其次,可以熟悉嵌入式软件系统移植的整个过程,对该过程有整体上的把握,对后续的嵌入式系统开发有指导性意义。

最后,通过该研究过程可以构建较新版的软件系统,实现更好的系统性能,最重要的是可以在实践基础上增加对系统移植理论的理解并积累丰富的系统移植经验,为后续的嵌入式应用开发打下坚实的基础。

国内外嵌入式系统的发展概况

我国国内的嵌入式软件市场已处于整体启动阶段。

国内嵌入式软件市场未来的发展重点在于对应用范围的拓展。

随着Internet的发展以及Internet技术在信息家电、工业控制技术等领域的应用,嵌入式系统与Internet的结合将代表着嵌入式技术的真正未来。

嵌入式处理器是嵌入式系统的核心,是辅助、控制系统运行的硬件单元,目前全世界嵌入式处理器的品种总量已经超过1000多种,流行体系结构包括MPU、MCU等三十几个系列,速度越来越快,性能越来越强,价格也越来越低。

根据其现状,嵌入式处理器可分成下面几类。

(1)嵌入式微处理器(EmbeddedMICroprocssorUnit,EMP)

(2)嵌入式微控制器(MicrocontrollerUnit,MCU)

(3)嵌入式DSP处理器(EmbeddedDigitalSignalProcessor)

(4)嵌入式片上系统(SystemonChip,SOC)

嵌入式操作系统是嵌入式应用软件的基础和开发平台,用户的其它应用程序都建立在操作系统之上。

但嵌入式操作系统并不是简单嵌入的操作系统,它与通常意义的操作系统有所区别。

嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配和调度工作。

Linux是一套以UNIX为基础发展而来的操作系统。

自1991年诞生至今,以惊人的速度发展。

Linux在很多方面己经赶上甚至超过了很多商用的UNIX系统。

它充分利用了x86CPU的任务切换机制,实现了真正的多任务、多用户环境。

Linux对硬件配置的要求相当低,能够在4M内存的386机器上很好的运行。

而且可以支持多种处理器芯片。

在应用于嵌入式系统方面,Linux己经在许多典型的硬件平台上实现了移植,这些平台包括ARM、MIPS、PowerPC等。

随着Linux2.6内核的发布,Linux向现有主流的RTOS提供商在嵌入式系统市场提出了巨大挑战,将成为更优秀的嵌入式操作系统。

Linux2.6在内核主体中加入了提高中断性能和调度响应时间的改进,其中有三个最显著的改进:

采用可抢占内核、更加有效的调度算法以及同步性的提高。

本课题以飞凌嵌入式技术有限公司的以S3C2440A为核心的ARM9开发板FL2440为硬件开发平台,在此基础上,实现嵌入式Linux系统的移植。

在了解了系统移植方法并做了大量的工程实践的基础上,从无到有的建立了一个可用的嵌入式Linux系统,包括移植了功能较强的BootLoader、性能更好的Linux2.6.28版本内核。

其移植过程不脱离一般性,但因具体开发环境的不同,移植过程中会涉及到很多具体问题。

主要研究内容

(1)建立嵌入式Linux交叉开发环境

对于嵌入式系统,目标板一般只有很小的存储空间,处理器频率也较低。

直接在这样的硬件上建立Linux系统非常困难。

嵌入式Linux交叉开发环境可以很好地解决这个难题,即实现在PC机上编译嵌入式系统要运行的程序。

(2)移植BootLoader引导程序

嵌入式Linux内核通常需要目标板上的引导程序引导来引导内核的启动,这些引导程序就是BootLoader。

BootLoder所处层次位置如下图1所示。

BootLoader在目标板上电的时候运行,主要完成开发板初始化和Linux内核引导的任务。

由于BootLoder和CPU及电路板的配置相关,不可能有通用的BootLoader,开发时需要根据具体情况进行移植。

本次毕业设计所用的BootLoader是开发板官网上下载的,所以可以更加稳定的在开发板上运行Linux系统。

图1BootLoader所处层次

(3)配置、编译、移植Linux内核

详细分析了Linux移植的要点,并对目前较新的2.6版Linux内核源码进行了移植、配置和编译。

(4)对文件系统进行移植到开发板。

根据内核所支持的文件系统类型选择文件系统,本论文选择触屏yaffs文件系统并移植。

 

1嵌入式Linux系统构成和软件开发环境

1.1嵌入式Linux系统的体系结构

除了硬件系统外,嵌入式Linux系统需要有下面三个基本元素:

系统引导程序BootLoader(用于设备加电后的系统定位引导)、Linux内核(内存管理、程序管理)、初始化进程。

但如果要它成为完整的操作系统并继续保持小型化还必须加上硬件驱动程序、硬件接口程序和应用程序组。

最终可用的嵌入式Linux系统体系结构如表1-1所示:

表1-1嵌入式Linux系统体系结构

应用软件

应用层

嵌入式GUI图形支持

支持层

BOOTLOADER、LINUXKERNEL、DRIVERS

系统层

嵌入式开发板实验板(本论文使用SAMSUNGS3C2440A)

硬件层

硬件层是操作系统的基础,所有软件都建立在它的基础上,系统层的BootLoader是嵌入式系统软件的最底层,是上电后运行的第一个程序,类似于PC机上的BIOS,完成对硬件的初始化和内核加载,驱动程序作为系统内核的一部分,实现操作系统内核和硬件设备之间的接口,为应用程序屏蔽硬件的细节,系统内核主要完成任务管理,调度算法等,GUI图形支持库实现对硬件的抽象、提供基本的图形接口函数和与用户实现交互,而应用软件用来实现某一具体功能。

1.2嵌入式Linux系统硬件平台

1.2.1S3C2440A处理器简介

三星公司推出的这款16/32位RISC处理器S3C2440A,是面向高端手持设备或其它一般应用而设计的芯片。

采用ARM920T内核,低功耗,具有高速的处理计算能力。

整体设计融合了MMU、AMBABUS和Harvard(哈佛)结构。

具有独立的16KB指令Cache和16KB数据Cache。

其内部结构框图见图1-1:

图1-1S3C2440A结构框图

1.2.2硬件系统整体结构

体系结构:

(1)为手持设备和通用嵌入式应用提供片上集成系统解决方案。

(2)16或者32位RISC体系结构和ARM920T内核指令集。

(3)增强的ARM体系结构MMU用于支持WinCE,EPOC32和Linux。

(4)指令高速存储缓冲器(I–Cache),数据高速存储缓冲器(D–Cache),写缓冲器和物理地址TAGRAM减少主存带宽和响应性带来的影响。

(5)采用ARM920TCPU内核支持ARM调试体系结构。

(6)内部高级微控制总线(AMBA)体系结构(AMBA2.0,AHB/APB)。

系统管理器:

(1)支持大/小端模式。

(2)支持快速总线模式和同步总线模式

(3)寻址空间:

每bank128M字节(总共1G字节)。

(4)支持可编程的每bank8/16/32位数据总线带宽。

(5)从bank0到bank6都采用固定的bank起始寻址。

(6)bank7具有可编程的bank的起始地址和大小。

(7)8个存储器bank,其中6个适用于ROM、SRAM和其它,另外两个适用于ROM/SRAM和同步DRAM。

(8)所有的存储器bank都具有可编程的操作周期。

(9)支持外部等待信号延长总线周期。

(10)支持掉电时的SDRAM自刷新模式。

(11)支持各种型号的ROM引导(NOR/NANDFLASH、EEPROM,或其它)。

NANDFLASH启动引导:

(1)支持从NANDFLASH存储器直接启动。

(2)采用4KB内部缓冲器进行启动引导。

(3)启动之后NAND存储器仍然可作为外部存储器使用

Cache存储器:

(1)64项全相连模式,采用I–Cache(16KB)和D–Cache(16KB)。

(2)每行8字长度,其中每行带有一个有效位和两个dirty位。

(3)伪随机数或轮转循环替代法。

(4)采用写穿式(write–through)或写回式(write–back)Cache操作来更新主存储器。

(5)写缓冲器可以保存16个字的数据和4个地址。

时钟电源管理:

在S3C2440中集成了两个锁相环:

MPLL和UPLL。

UPLL将产生USB主机/设备的时钟,MPLL产生处理器所需要的时钟,最大400MHZ(在1.3V内核电压下)。

(1)通过设置相应寄存器,可以有选择的为每个功能模块提供需要的时钟。

(2)电源模式,包括正常、慢速、空闲和休眠模式。

正常模式指正常运行模式;慢速模式指不加锁相环的低时钟频率模式;空闲模式指停止CPU的时钟;休眠模式指所有外设和内核的电源都被切断。

(3)可以通过EINT[15:

0]或RTC报警中断来从休眠模式中唤醒处理器。

中断控制器:

60个中断源(1个看门狗定时器,5个定时器,9个UARTs,24个外部中断,4个DMA,2个RTC,2个ADC,1个IIC,2个SPI,1个SDI,2个USB,1个LCD,1个电池故障,1个NAND和2个摄像头)1个AC97。

(1)支持电平或者边沿触发模式的外部中断源。

(2)可编程的边沿或者电平触发模式选择。

(3)支持为紧急中断请求提供快速中断(FIQ)服务。

具有脉冲带宽调制功能的定时器(PMW)

(4)4通道16位具有PWM功能的定时器,1通道16位内部定时器,可基于DMA或中断进行工作。

(5)可编程的占空比周期,频率和极性。

(6)能产生死区。

(7)支持外部中断源。

RTC(实时时钟):

(1)全面的时钟特性:

秒、分、时、日期、星期、月和年。

(2)32.768KHz工作频率。

(3)具有报警中断。

(4)具有节拍(TICK)中断。

通用I/O端口:

(1)24个外部中断端口。

(2)多功能输入/输出端口。

DMA控制器

(1)4通道的DMA控制器。

(2)支持存储器到存储器,I/O到存储器,存储器到I/O和I/O到I/O的传输。

(3)采用脉冲传输模式加快传输速率。

LCD控制器:

STNLCD显示特性:

(1)支持3种类型的STNLCD显示屏:

4位双扫描,4位单扫描,8位单扫描显示类型。

(2)支持单色模式、4级、16级灰度STNLCD、256色和4096色STNLCD。

(3)支持多种不同尺寸的液晶屏。

(4)LCD实际尺寸的典型值是:

640×480,320×240,160×160及其它。

(5)最大帧缓冲器大小是4M字节。

(6)256色模式下支持的最大虚拟屏是:

4096×1024,2048×2048,1024×4096等。

TFT彩色显示屏:

(1)支持彩色TFT的1,2,4或8bbp(象素每位)调色显示。

(2)支持16bbp无调色真彩显示。

(3)在24bbp模式下支持最大16M色TFT。

(4)支持多种不同尺寸的液晶屏。

(5)典型实屏尺寸:

640×480,320×240,160×160等。

(6)最大帧缓冲器大小是4M字节。

(7)64K色彩模式下最大的虚拟屏尺寸为2048×1024。

UART:

(1)3通道UART,可以基于DMA模式或中断模式工作。

(2)支持5位、6位、7位或者8位串行数据发送/接收。

(3)支持外部时钟作为UART的运行时钟(UEXTCLK)。

(4)可编程的波特率。

(5)支持IrDA1.0。

(6)具有测试用的回还模式。

(7)每个通道都具有内部64字节的发送FIFO和64字节的接收FIFO。

A/D转换和触摸屏接口:

(1)8通道多路复用ADC。

(2)最大500KSPS/10位精度。

(3)内置场效应管可直接连接触摸屏。

看门狗定时器:

(1)16位看门狗定时器。

(2)在定时器溢出时发生中断请求或系统复位。

IIC总线接口:

(1)1通道多主IIC总线。

(2)可进行串行、8位、双向数据传输,标准模式下数据传输速度可达100kbit/s,快速模式下可达到400kbit/s。

IIS总线接口:

(1)1通道音频IIS总线接口,可基于DMA方式工作。

(2)串行,每通道8/16位数据传输。

(3)发送和接收具备128字节(64字节加64字节)FIFO。

(4)支持IIS格式和MSB–justified数据格式。

AC97音频接口:

(1)支持16位取样。

(2)1路立体声PCM(脉冲编码调制)输入、1路立体声PCM输出、l路MIC输入。

USB主设备:

(1)2个USB主设备接口。

(2)遵从OHCIRev1.0标准。

(3)兼容USBver1.1标准。

USB从设备:

(1)1个USB从设备接口。

(2)具备5个Endpoint。

(3)兼容USBver1.1标准。

SD主机接口:

(1)基于普通、DMA或中断传输模式(字节、半字、字)。

(2)支持DMA脉冲访问(只是字传输)。

(3)兼容SD存储卡协议1.0版。

(4)兼

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1