基于ARM平台的Lniux系统移植毕业设计论文Word下载.docx
- 文档编号:18894649
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:56
- 大小:1,020.50KB
基于ARM平台的Lniux系统移植毕业设计论文Word下载.docx
《基于ARM平台的Lniux系统移植毕业设计论文Word下载.docx》由会员分享,可在线阅读,更多相关《基于ARM平台的Lniux系统移植毕业设计论文Word下载.docx(56页珍藏版)》请在冰豆网上搜索。
嵌入式处理器种类繁多,要是嵌入式Linux系统在各个领域得到广泛应用,就必须把嵌入式系统移植到各种处理器平台上。
ARM平台是目前应用十分广泛的处理器体系结构,自然也是嵌入式Linux系统移植的一个重点。
本论文主要是设计与实现了Bootloader和Linux在S3C2410平台上的移植。
主要完成的工作包括在开发板上完成创建交叉编译环境、Uboot移植、Linux内核移植和文件系统移植。
通过以上步骤,成功实现了Linux在硬件平台在S3C2410开发板上的运行。
同时运行简单程序,用来测试系统,包括声卡,视频,LCD,网卡等。
关键词:
嵌入式系统,Linux,ARM,bootloader,系统移植
Abstract
Withthedevelopmentofthecomputertechnology,communicationtechnologyandthein-depthapplicationoftheIntemet,moreandmoreembeddedsystemsarerunningaroundUS.Andbecauseoftheincreasingcomplexityoftheembeddedsystems,theembeddedoperatingsystemhasbecomethemostimportantpartoftheembeddedsystem.Inallkindsofembeddedoperatingsystems,Linuxhastheadvantagesofclearstructureandopensource,SOithasbeenwidelyusedintheembeddedsystembasedonmonitoringsystemandPDA.Becausetherearemanykindsofprocessor,portingLinuxtoaprocessoristhefirststepofusingLinuxinembeddedareaextensively.Amongthemainembeddedprocessors,ARMisthemainstreamwhichusedbroadly.
ThisthesisisthedesignandimplementationoftheBootloaderandLinuxportingonS3C2410platform.Mainworkincludesthecompletionofthedevelopmentboardtocreateacross-compilerenvironment,Uboottransplant,Linuxkernelportingandfilesystemmigration.Throughtheabovesteps,thesuccessachievedinthehardwareplatformrunningLinuxS3C2410developmentboard.Whilerunningasimpleprogramtotestsystems,includingaudio,video,LCD,networkcards.
Keywords:
Embeddedsystem,Linux,ARM,Bootloader,Systemtransplantation
前言
随着科技与信息技术的快速发展,基于嵌入式设备的操作系统有了长足的发展,并且广泛地应用于工业控制,安防监控,环境检测,医疗,航天航空,军事等领域。
目前,主要应用于嵌入式的有以下几种操作系统。
WindowsCE是微软为了争夺嵌入式市场而推出的一款嵌入式操作系统,虽然windows应用程序很容易就能移植到该系统上,但是该系统不开源,存在安全问题而且系统升级比较慢(在windows电脑升级的时候大家都感受过吧);
Vxworks操作系统该系统偏向于实时性,仅支持四种文件系统,而且该系统还是收费的,所以不适合搭载通用计算机上的应用程序;
嵌入式linux系统是一种开放源代码的系统,不存在黑箱技术,由全球的从多的linux的爱好者和linux开发者提供支持和维护,支持多种硬件平台,而且性能稳定,裁剪性好,开放使用都很容易。
本课题中考虑到嵌入式系统的安全性以及幵放的难易程度,选择嵌入式linux操作系统,初步实现操作系统的一般功能和简单程序运行,应用程序的幵发功能,至于完善操作系统的特殊功能将在以后的学习或工作中进行更深入的研究。
该论文第一章简单介绍背景和发展;
第二章介绍系统分析;
第三章介绍了linux系统移植;
第三章嵌入式系统移植的实现,包括内核;
第四章根文件移植;
第五章设备驱动的移植。
第一章嵌入式技术概况
所谓嵌入式系统是指以应用为中心、以计算机技术为基础、软硬件可裁减、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系。
这一类系统里面运行的程序能够自动控制和管理设备,有的甚至具有自适应能力,有着高度的智能,因而这种技术具有极其广泛的应用价值。
我们日常生活中的MP3音乐播放器,PDA,当下领导手机市场的安卓智能手机,酒店点菜系统,KTV点歌系统,车载GPS系统,探测火星的机器人等等都可称作嵌入式系统产品。
可以说,嵌入式系统具有无限优越的应用前景。
1.1背景介绍
随着嵌入式计算技术的飞速发展,嵌入式系统已经应用到人类社会和日常生活的各个领域。
从冰箱、洗衣机到航天飞机、神州系列飞船,处处都存在着嵌入式计算机系统的应用。
嵌入式系统的研究与开发己经成为现代电子设计的一大领域和方向。
据统计,在现在所使用的操作系统中,95%以上都是嵌入式计算机系统,而并非通用的桌面计算机系统。
嵌入式系统的最大特点是其所具有的目的性或针对性,即一套嵌入式系统的开发设计都有其特殊的应用场合和特定功能,这就是嵌入式系统与通用的计算机系统的主要区别。
另外,嵌入式技术与实时性有着天然的联系:
由于嵌入式系统是为特定的目的而设计的,且常常受到空间、成本、存储、带宽等条件的限制,因此它必须最大限度地在硬件上和软件上“量身定做"
以提高效率,这样的结果最终导致来实时性的增强。
目前,使用最多的嵌入式操作系统产品主要有:
Vxwork、QNX、PalmOS、WindowsCE、pSOS、HopenOS、DeltaOS等。
但这些专用的、商业化的嵌入式操作系统,价格昂贵,对于中、下规模的软件开发公司无力支付操作系统的使用费用。
而且,具有商业版权的操作系统,其源代码的封闭性也大大限制了应用软件开发者的积极性。
对于广泛的嵌入式系统软件开发人员来说,精简的、界面友好的、性能可靠的、开源的、易开发、多任务且价格低廉的嵌入式操作系统,才是理想的嵌入式软件开发环境。
ARM是AdvancedRISCMachines的缩写,由英国AdvancedRISCMachines(ARM)Limited公司设计。
ARM32位体系结构目前被公认为是业界领先的32位嵌入式RISC微处理器结构,所有ARM处理器共享这一体系结构,可确保当开发者转向更高性能的ARM处理器时,在软件开发上可获得最大的回报。
ARM芯片具有RISC系统的一般特点,如:
具有大量的寄存器,绝大多数操作数都在寄存器中进行,通过Load/Store的体系结构在内存和寄存器之间传递数据,寻址方式简单;
采用固定长度的指令格式等等。
根据内核的不同,ARM处理器分为ARM7,ARM9,ARM9E,ARMl0,SecurCore,Intel的Xscal,Intel的StrongARM等。
这些处理器最高主频达到了800MIPS,功耗数量级为Mw/MHz。
对于支持同样ARM体系版本的处理器,其软件是兼容的。
现在这些处理器广泛应用于开发应用平台、实时嵌入式应用以及安全系统等应用
1.2研究意义
LinusTorvalds倡导下的Linux操作系统在整个计算机操作系统领域引发了强烈的反应,他不仅为广大的计算机用户提供了一个可选的优秀操作系统平台,同时也为诸多的操作系统的研究人员、开发人员提供了一个很好的研究与开发基础,使得这个领域的研究更加开放和活跃。
Linux的如下特点是十分引人注目的。
(1)Linux开放源代码,这使得学习、修改、裁剪Linux成为可能,嵌入式系统的设计者可以对嵌入式Linux进行二次开发,去掉操作系统的附加功能,只保留必须的操作系统功能。
(2)成本低,Linux是开放源代码的自由软件,遵循GPL协议,其源代码可以自由获得使用。
这使得Linux开发嵌入式应用中用于购买嵌入式操作系统的费用可以忽略不计。
而商业操作系统其操作系统的每个拷贝售价在几百美元到几万美元不等,如果需要操作系统的源代码,则还需要另外购买。
此外,Linux的开发工具也可以免费获得。
这使得开发成本大大降低。
(3)强大的网络支持功能。
Linux诞生于因特网时代并具有Unix的特性,保证了它支持所有标准因特网协议,并且可以利用Linux的网络协议栈将其开发成为嵌入式的TCP/IP网络协议栈。
此外,Linux还支持ext2、fatl6、fat32等文件系统,为开发嵌入式系统应用打下了很好的基础。
(4)优秀的开发工具,开发嵌入式系统的关键是需要有一套完善的开发和调试工具。
在线仿真器的价格非常昂贵,而且只适合做非常底层的调试。
如果使用的Linux,一旦软硬件能够支持正常的串口功能时,即使不用在线仿真器也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。
Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。
此外,Linux也符合IEEEPOSIX.1标准,使应用程序具有较好的可移植性。
(5)广泛的硬件支持。
Linux支持的硬件平台很多,包括x86、ARM、MIPS、ALPHA、
PowerPC等多种体系结构,目前已经成功移植到数十种硬件平台,几乎能够运行在所有流行的CPU上,支持各种主流硬件设备和最新的硬件技术。
因此Linux的移植是嵌入式开发中的热点。
(6)大量的技术支持。
Linux源代码开放性,使基于Linux的开发人员非常多,而且Linux的各种开发文档和基于Linux的开放源代码应用程序很容易从网络上获得。
实时化后的Linux除了保持原有的特性,例如,开放性(遵循开放系统互连0SI国际标准),多用户,多任务,良好的用户界面,设备独立性,良好的移植性,同时使其具备更良好的进程调度算法,加上Linux丰富的免费资源,Linux必将在嵌入式实时领域有较广的应用前景。
1.3嵌入式系统现状及发展趋势
嵌入式系技术具有非常广阔的应用前景,其应用领域可以包括:
(1)工业控制
基于嵌入式芯片的工业自动他设备具有很大的发展空间,目前已经有大量的8、16、32位嵌入式微控制器应用在工业过程控制、数控机床、电力系统、电网安全、电网设备监测、石油化工系统等领域。
(2)交通管理
在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术已经获得了广泛的应用,内嵌GPS模块、GSM模块的移动定位终端已经在各种运输行业成功使用。
(3)信息家电
这将成为嵌入式系绕最大的应用领域,冰箱、空调等的网络化、智能化将引领人们的生活步入一个崭新的空间。
即使不在家里,也耐以通过电话线、网络进行远程控制。
在这些设备中,嵌入式系统将大有用武之地。
(4)家庭智能管理系统
水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌入的专用控制芯片将代替传统的人工检查,并实现更高、更准确和更安全的性能。
(5)环境监测
环境监测包括水文资料实时监测,防洪体系及水土质量监测,堤坝安全,地震监测网、实时气象信息网、水源和空气污染监测等。
在很多环境恶劣、地况复杂的地形,嵌入式系统将实现无人监测。
(6)机器人
嵌入式芯片的发展将使机器人在微型化、智能化方面的优势更加明照,同时会大幅度降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。
发展趋势有:
(1)为设备网络通信提供标准接口
为适应嵌入式分布处理结构和应用上网需求,面向2l世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。
针对外部联网要求,嵌入设备必须配备Ethernet网口,相应需要TCP/IP协议簇软件支持;
由于家用电器互相关联(如防盗报警,灯光能源控制,影视设备等)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEEl394,USB,CAN或IrDA通信接口,同时也需要提供相应的组网协议软件和物理层驱动软件。
(2)支持小型电子设备实现小尺寸,徽功耗和低成本
为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能,限制内存容量和复用接口芯片,这就相应提高了对嵌入式软件设计技术要求(如选用最佳的编程模式和不断改进算法),因此既要软件人员有丰富经验,更需要发展先进嵌入式软件技术如WEB和WAP等。
(3)提供精巧的多媒体人机界面
之所以亿万用户乐于按受嵌入式设备,重要因素之一是嵌入式设备与用户之间的亲和力,自然和人机交互界面。
人们与信息终端交互要求GUI屏幕为中心的多媒体界面。
手写文字输入,语音拨号上网,收发电子自B件以及彩色图形图像已获得很大成功,先进的PDA早已在显示屏幕上已实现汉字写入,短信息,语音发布。
(4)嵌入式网络
除了以上这些应用领域,嵌入式系统还有其他方面的应用。
嵌入式系统已经进入到现代社会中人们生活的方方面面,可是说是“无处不在”,尤其是在控制方而的应用。
同样的道理,所有基于剐络的远程控制器件都需要与嵌入式系统之间实现接口,然后再由嵌入式系统来控制并通过网络实现。
所以,开发和探讨嵌入式系统有着十分重要的意
第二章系统需求分析
2.1开发平台介绍
本论文研究使用的嵌入式系统硬件平台为UP-TECH,它以三星S3C2410芯片为处理器。
UP-TECH不但是一个强大的教学平台,而且还是一个强大的、灵活的开发平台,在这个平台上很容易进行软件开发研究及硬件设计等。
S3C2410所采用的核心内核部分是ARM公司的ARM920T处理器核。
下面我们首先介绍ARM微处理器。
2.2ARM微处理器简介
ARM(AdvancedRISCMachines),可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。
ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应稳,本身不直接从事芯片生产,靠转让设计许可由合作公司生产餐具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当外围电路,从而形成自己的ARM微处理器芯片进入市场。
目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品进入市场更容易被消费者所接受,提高竞争力。
2.3UP-TECH硬件平台
2.3.1硬件介绍
UP-TECH平台由核心板和底板(外设板或称基本板)组成,核心板上集成SamsungS3C2410处理器,64M的FLASH和64MSDRAM,为应用研发提供了足够的空间。
Samsung公司推出的16/32位RISC处理器S3C2410,为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。
为了降低整个系统的成本,S3C2410提供了以下丰富的内部设备:
分开的16KB的指令Cache和16KB数据Cache,MMU虚拟存储器管理,LCD控制器(支持STN&
TFT),支持NANDFlash系统引导,系统管理器(片选逻辑和SDRAM控制器),3通道UART,4通道DMA,4通道PWM定时器,I/O端口,RTC,8通道10位ADC和触摸屏接口,IIC-BUS接口,IIC-BUS接口,USB主机,USB设备,SD主卡&
MMC卡接口,2通道的SPI以及内部PLL时钟倍频器。
S3C2410采用了ARM920T内核,0.18um工艺的CMOS标准宏单元和存储器单元。
它的低功耗、精简和出色的全静态设计特别适用于对成本和功耗敏感的应用。
同样它还采用了一种叫做AdvancedMicrocontrollerBusArchitecture(AMBA)新型总线结构。
S3C2410的显著特性是它的CPU核心,是一个由AdvancedRISCMachines(ARM)有限公司设计的16/32位ARM920TRISC处理器。
ARM920T实现了MMU,AMBABUS和Harvard高速缓冲体系结构。
这一结构具有独立的16KB指令Cache和16KB数据Cache,每个都是由8字长的行(line)构成。
通过提供一系列完整的系统外围设备,S3C2410大大减少了整个系统的成本,消除了为系统配置额外器件的需要。
本文档将介绍S3C2410中集成的以下片上功能:
2.3.2S3C2410ARMMPU
图2-12410体系结构框图
图2-2内部结构图
第三章嵌入式linux移植的实现
3.1移植环境搭建
嵌入式开发传统方式是PC机+虚拟机来实现,但考虑到效率太低,在本次移植中采用直接的硬盘安装linux系统来实现,安装了Ubuntu14.04版本。
所谓的交叉编译简单地说,就是在一个平台上生成另一个平台上的可执行代码.我们需要一套编译环境,将在X86上的C代码编译为ARM系统可以识别的目标代码。
arm-linux-gcc是基于ARM目标机的交叉编译软件,前面几年安装arm-linux-gcc交叉编译软件对与一个初级嵌入式工程师来说特别棘手,因为它需要安装多个软件包,而且安装过程中不能有半点差错,因为每个软件包都有它的依赖关系【换句话就是说安装某个软件包时,如果它的依赖软件版本太低或者没有安装都将导致该软件包安装失败】,在此使用了别人集成的交叉编译链arm-linux-gcc-4.3.2安装如下
#tarzxvfarm-linux-gcc-4.3.2.tgz
#vim/etc/profile添加如下
exportPATH=$PATH:
/opt/usr/local/arm/4.3.2/bin
/opt/usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin
#source/etc/profile使安装马上生效
#arm-linux-gcc–v查看是否生效结果如下说明可以了
gccversion4.3.2(SourceryG++Lite2008q3-72)
图3-1交叉编译环境结构图
3.1.1Tftp服务搭建
1、安装相关软件包:
Ubuntu
tftp(服务端),tftp(客户端),xinetd
#
apt-get
install
tftpd
tftp
xinetd
2、建立配置文件
在/etc/xinetd.d/下建立一个配置文件tftp
vim
tftp
在文件中输入以下内容:
service
{
socket_type
=
dgram
protocol
udp
wait
yes
user
root
server
/usr/sbin/in.tftpd
server_args
-s
/tftpboot
disable
no
per_source
11
cps
100
2
flags
IPv4
}
保存退出。
3、建立Ubuntu
tftp服务文件目录(上传文件与下载文件的位置),并且更改其权限
mkdir
/tftpboot
/*在根目录下建立tftpboot文件夹,注意与mkdir
tftpboot的区别*/
chmod
777
-R
4、重新启动服务
#
/etc/init.d/xinetd
restart
至此Ubuntu
tftp服务已经安装完成了,下面可以对其进行一下测试。
(在当前目创建1.txt,在tftpboot目录下创建1.txt和2.txt,且tftpboot目录下2.txt权限为修改为777)。
执行get命令时,保证tftpboot目录下的文件权限chomd7771.txt,执行put命令时,必须先在tftpboot目录下新建一个和上传文件同名的文件权限chmod7772.txt。
127.0.0.1
tftp>
get
1.c
Received
7
bytes
in
0.1
seconds
put
2.c
Sent
10
0.0
quit
以上把tftp服务成功搭建好。
3.2bootloader概念
引导加载程序是系统加电后运行的第一段代码。
我们熟悉的PC中的引导程序一般由BIOS和位于MBR的OSBootLoader(例如LILO或者GRUB)一起组成。
然而在嵌入式系统中通常没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由BootLoader来完成。
在嵌入式Linux中的引导加载程序即等效为BootLoader。
BootLoader就是在操作系统内核运行之前运行的一段小程序。
通过这段小程序,我们可以初始化硬件设备、建立内存空间的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM 平台 Lniux 系统 移植 毕业设计 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)