已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
成 人 高 等 教 育毕 业 论 文论 文 题 目: 基于 ARM-LUINX 的嵌入式平台搭建 专 业 名 称: 计算机科学与技术 层 次: 学 生 姓 名: 完 成 日 期: 摘要:嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。嵌入式系统以应用为中心、以计算机技术为基础、软硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。其中基于ARM为主流。嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。Linux的大小适合嵌入式操作系统Linux固有的模块性,适应性和可配置性,使得这很容易做到。另外,Linux源码的实用性和成千上万的程序员热切期望它用于无数的嵌入式应用软件中,导致很多嵌入式Linux的出现,包括:Embedix,ETLinux,LEM,Linux Router Project,LOAF,uCLinux,muLinux,ThinLinux,FirePlug,Linux和PizzaBox Linux关键词:嵌入式系统搭建,linux,GCC ,ARM目录1嵌入式系统入门研究11.1嵌入式系统概述21.2嵌入式系统构成部分21.3嵌入式处理器21.4嵌入式操作系统21.5嵌入式硬件层及外围电路21.6嵌入式应用及发展22 ARM920T内核43 Lunix内核移植431 内核移植难点232 内核移植的基本策略233 内核移植方法234 内核移植过程24后续工作及实习心得4序言意义、目的:这些年来掀起了嵌入式系统应用热潮。嵌入式微控制器技术的出现则给现代工业控制领域带来了一次新的技术革命。由嵌入式微控制器组成的系统,最明显的优势就是可以嵌入到任何微型或小型仪器、设备中。嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式linux继承了Internet上无限的开放源代码资源。而且性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植,实时性能稳定性好安全性好。嵌入式Linux的应用领域非常广泛。因此,研究嵌入式Linux+arm+gcc能够很好的去从事开发嵌入式应用。追随前沿科技。我的研究主要是ARM920T硬件平台设计,Linux系统设备驱动程序,嵌入式Linux系统平台的构建,文件系统的建立,通过这些,学会搭建Linux+arm嵌入式平台,从而为后续应用系统开发奠定基础。也就是构建硬件和软件搭建嵌入式系统。其中还包括系统移植,也是最难的问题。1 嵌入式系统入门研究1.1嵌入式系统概述IEEE(Institute of Electrical and Electronics Engineers,美国电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”。嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。从应用对象上加以定义,从右图中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY 智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。12嵌入式系统构成部分嵌入式系统通常由嵌入式处理器、外围设备、嵌入式操作系统和应用软件等极大部分组成。1.3嵌入式处理器 嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。范围极其广阔,从最初的4位处理器,目前仍在大规模应用的8位单片机,到最新的受到广泛青睐的32位,64位嵌入式CPU。世界上具有嵌入式功能特点的处理器已经超过1000种,流行体系结构包括MCU,MPU等30多个系列。鉴于嵌入式系统广阔的发展前景,很多半导体制造商都大规模生产嵌入式处理器,并且公司自主设计处理器也已经成为了未来嵌入式领域的一大趋势,其中从单片机、DSP到FPGA有着各式各样的品种,速度越来越快,性能越来越强,价格也越来越低。嵌入式处理器的寻址空间可以从64kB到16MB,处理速度最快可以达到2000 MIPS,封装从8个引脚到144个引脚不等。嵌入式微处理器(Micro Processor Unit,MPU)是由通用计算机中的CPU演变而来的。它的特征是具有32位以上的处理器,具有较高的性能,当然其价格也相应较高。但与计算机处理器不同的是,在实际嵌入式应用中,只嵌入式处理器保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。主要的嵌入式处理器类型有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM/ StrongARM系列等。 其中Arm/StrongArm是专为手持设备开发的嵌入式微处理器,属于中档的价位。1.4嵌入式操作系统嵌入式操作系统(Embedded Operating System,简称:EOS)是指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前在嵌入式领域广泛使用的操作系统有:嵌入式Linux、Windows Embedded、VxWorks等,以及应用在智能手机和平板电脑的Android、iOS等。1.5嵌入式硬件层及外围电路硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。存储设备:静态易失性存储设备(RAM)、动态存储设备(DRAM)和非易失存(FLASH)。其中,Flash可以擦写次数多、存储速度快、容量大价格低等特点,在嵌入式系统中得到广泛的应用。通讯接口设备:应用广泛的包括并口,串口,SPI串行外围设备,I2C总线接口、USB接口和以太网接口等等。人机交换设备:LCD、键盘和触摸屏等。1.6嵌入式应用及发展如今已被广泛的应用于工业制造、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等众多领域。有巨大的市场前景和商业机会,出现了大量的专业公司和产品嵌入式Linux系统优缺点对比,如Montavista Lineo Emi等,有行业协会如Embedded Linux Consortum等,得到世界著名计算机公司和OEM板级厂商的支持,例如IBM Motorola Intel等。传统的嵌入式系统厂商也采用了Linux策略,如Lynxworks Windriver QNX等,还有Internet上的大量嵌入式Linux爱好者的支持。嵌入式Linux支持几乎所有的嵌入式CPU和被移植到几乎所有的嵌入式OEM板。前,嵌入式技术已成为通信和消费类产品的共同发展方向。嵌入式系统几乎包括了生活中的所有电器设备,如掌上、移动计算设备、电视机顶盒、手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。嵌入式系统是先进的计算机技术、半导体技术、电子技术和各个行业的具体应用相结合的产物,这就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式系统一般指非系统。它是以应用为中心、软硬件可裁减的、能适应应用系统对功能、可靠性、成本、体积、功耗等综合性要求的专用计算机系统。简单地说,嵌入式系统是集系统的应用软件与硬件于一体,类似于中的工作方式,具有软件代码小、高度自动化、响应速度快等特点,因此特别适合于要求实时和多任务的系统。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成。2 ARM920T内核S3C2410 芯片基于ARM920T 内核,采用五级流水线和哈佛结构,提供1.1 MIPS/MHz 的性能,是高性能和低功耗的硬宏单元。ARM920T 具有全性能的MMU、指令和数据Cache 以及高速AMBA 总线接口。作为S3C2410 芯片的CPU 芯核,16/32 位ARM920T RISC 微处理器采用0.18m CMOS 标准单元结构,具有独立的16kB 指令缓存和16kB 数据缓存。S3C2410 内部结构较复杂,提供可扩展的功能模块较多,主要有ARM920T 内核(16-/32-bit RISC CPU),独立的16kB 指令和16kB 数据缓存,MMU 虚拟内存管理单元,LCD 控制器(支持STN 和TFT),NAND flash boot loader,系统管理单元(SDRAM 控制器等),3 通道UART,4 通道DMA,4 通道具备PWM 功能的定时器,I/O 口,RTC(实时时钟),8 通道10bit 精度ADC和触摸屏控制器,IIC 总线接口,IIS 数字音频总线接口,USB 主机,USB 设备,SD/MMC 卡控制器,2 通道SPI 和PLL 数字锁相环组成。S3C2410 提供了一套比较完整的通用系统的外围设备,并且使得整个系统消耗最小。正是因为它具有很多常用的功能模块,所以也免去了添加配置附加设备的麻烦。图1 arm920t内核启动图片上集成的功能主要包括以下几个方面:(1)1.8V ARM 内核,3.3V 存储器,3.3V 外部I/O,具有16KB 指令缓存/16kB 数据缓存和MMU 的微处理器;(2)外部存储控制器(sDRAM 控制和片选逻辑);(3)LCD 控制器(支持上到4k 色的STN 和256k 色的TFT),1 通道LCD 专用DMA;(4)具有外部请求引脚的4 通DMA;(5)3 通道UART(IRDA1.0,16-Byte Tx FIFO 和16-Byte Rx FIFO)/2 通道SPI;(6)1 通道IIC 总线控制器/1 通道IIS 总线控制器;(7)1.0 版本的SD 主机接口和兼容的2.11 版本的Multi-Media 卡协议;(8)2 个USB 主机/1 个USB 设备(USB1.1);(9)4 通道PWM 计时器/1 通道内部计时器;(10)看门狗电路;(11)117 个通用I/O 口/24 通道外部中断源;(12)电源控制:常规、缓慢、空闲和断电模式;(13)8 通道10 位ADC 和触摸屏接口;(14)具有日历功能的实时时钟RTC;(15)具有锁相环的片上时钟发生器。3 Lunix内核移植31 内核移植难点Linux系统的内核是多层次结构的单体内核,其可移植性比微内核要差一些,但是,这种内核具有较高的效率。从操作系统发展的趋势来看,微内核作为一种先进的操作系统结构,是操作系统发展的一个潮流。但是,微内核结构较低的系统通信效率大大的降低了系统的性能。所以,从系统效率和性能的角度来考虑,Linux并没有采用先进的微内核结构而是选择了传统的单体内核机构。32 内核移植的基本策略在Linux26内核支持下,Linux已经在许多典型的硬件平台上实现移植,其中包括:I386、ARM、MIPS、ALPHA、PowerPC、SPARC、SH等。但是对于基于特定硬件体系设计的硬件平台,需要从头对Linux进行移植。此外还有部分体系的硬件平台,Linux只对其中部分的CPU或目标板提供了支持,如果使用了Linux尚未支持的CPU或目标板,也需要对Linux内核进行移植工作。通常可以采用以下两种方法进行Linux内核移植工作:(1)从头设计。即采用“自底向上”的设计方法,从硬件的需求考虑逐步的采用分析、设计、编码、测试。这种方法比较适合针对一种全新的硬件平台开展移植工作。(2)修改已有的代码。如前所述,Linux已经可以在多种体系结构中运行,那么,我们可以参考相近的体系结构的代码,只修改与我们的目标硬件平台不同的部分即可。这种方法的难点在于开发人员除了要了解目标硬件平台外。还必须对已支持的软硬件有一个较好的理解。本次研究的移植工作就是采用了这种开发方法。33 内核移植方法对于系统移植而言,Linux实际上是由两个比较独立的部分所构成,即内核部分和系统部分。通常启动一个Linux系统的过程为:一个不隶属于任何操作系统的加载程序将Linux部分内核调入内存,并将控制权交给内存中Linux内核的第一行代码,这样就完成了加载程序的工作。此后Linux要将自己的剩余部分全部加载到内存,初始化所有的设备,在内存中建立好所需的数据构(有关进程、设备、内存等)。此时,内核已经可以控制所有硬件设备。而后转入系统部分,操作并使用这些硬件设备。接下来内核加载根设备并启动init守护进程,init守护进程会根据配置文件加载文件系统、配置网络、服务进程及终端等。一旦终端初始化完毕,我们就会看到系统的欢迎界面了。概括说来,一部分内核初始化和控制绝大部分硬件设备,为内存管理、进程管理、设备读写等做好一切准备工作;另一部分系统加载必需的设备,配置各种环境以便用户可以使用整个系统。 可以看出,Linux内核中与具体硬件平台相关的结构主要分为两个部分:与具体的处理器结构相关的部分,包括中断处理、内存操作以及进程控制等;与具体外设关系密切的部分,包括硬件驱动与IO设备。 内核移植由五个功能部分组成:进程管理(包括调度和通信)、内存管理、设备驱动、虚拟文件系统与网络,它们之间存在复杂的调用关系。前三部分按从前到后的顺序,越靠前代表它们与硬件设备的相关程度越高,后面的虚拟文件系统和网络则几乎与平台无关,它们由设备管理中所支持的驱动程序来提供底层支持。因此,在做内核移植的时候,需要改动的就是进程管理、内存管理和设备管理中被独立出来的那部分即硬件相关部分的代码。在Linux内核源代码树中,这部分代码全部在areh目录下,主要是被内核直接调用的底层支持部分。这些代码重写了内核所需调用的所有函数,因为接口函数是固定的,所以这里更像是为硬件平台编写API。34 内核移植过程 首先在通用计算机上编写程序,然后通过交叉编译生成可在目标平台上运行的二进制代码格式,最后再下载到目标平台计算机的特定位置上运行。Linux内核移植过程如下: (1)建立移植所必须的交叉开发环境。需准备两台计算机,一台用作修改编译Linux内核,另一台用作移植Linux内核。 (2)编写和修改Linux内核。在通用计算机上修改和编写新的内核代码,编译出新的Linux内核。 (3)调试新的Linux内核。将编译后生成的新Linux内核加载到目标计算机上进行运行和调试,这个调试的过程就是交叉调试。 调试器是一个单独运行着的进程,它通过操作系统提供的调试接口来控制被调试的进程。在Linux内核移植过程中,调试时采用的是在宿主机和目标机之间进行的交叉调试。交叉调试有多种方法,它有一些典型特点: 调试器和被调试进程通常运行在不同的机器上(注:Linux内核作为操作系统内核,不同于普通进程,但在交叉调试中作为被调试对象,与普通进程没有区别),一般调试器运行在PC或者工作站主机(宿主机)上,而被调试的进程则运行在各种专业调试板(目标机)上。调试器通过某种通信方式与被调试进程建立联系,如串口、并口、网络、DBM或者专用的通信方式。本次移植采用了串口和JTAG两种方式与目标机进行通信。 在目标机上一般会具备某种形式的调试代理,它负责与调试器共同配合完成对目标机上运行着的进程的调试。这种调试代理可能是某些支持调试功能的硬件设备(如 DBI2000),也可能是某些专门的调试软件(如 gdbserver)。本次移植使用的是GDBStub。 如果目标机是某种形式的系统仿真器,通过在宿主机上运行目标机的仿真软件,整个调试过程可以在一台计算机上运行。虽然此时物理上只有一台计算机,但逻辑上仍然存在着宿主机和目标机的区别。本次移植没有使用系统仿真器。调试时,作为调试器的GDB运行在宿主机上,相应的GDBStub运行在目标机上。GDB通过串口或者网络与GDBStub进行通信,发出指令控制、访问运行在目标硬件平台上的新的Linux内核,读取Linux内核的当前状态,并能够改变Linux内核的运行状态。 经过多次移植测试后,就在基于ARM920T核的53C24lO处理器为核心处理器的ARM9平台上成功移植了Linux操作系统。4 后续工作及实习心得嵌入式应用的开发是一个长期的过程,随着用户需求的不断提升,计算机技术的不断发展,系统的更新换代很快。目前我们使ARM920T+Linux2.4.19的开发方案,从内核和操作系统两个大方面来说,都有继续研究的需要。首先,从内核角度看,ARM内核现在已经发展到ARM10系列,无论从流水线结构和内核支持频率都有大幅度的提升。为了能够适应技术发展的需求,应该采用更高级的内核。同时,随着运算量的逐步增大,要求CPU具有更好的运算能力,将ARM内核中嵌入DSP处理器,提高CPU运算能力,是下一步工作的一个趋势。从操作系统的角度来看Linux2.4.x是一个基于非抢占式的多任务的分时操作系统,虽然在用户进程的调度上采用抢占式策略,但是而在内核还是采用了轮转的方法,如果有个内核态的线程恶性占有CPU不释放,那系统无法从中解脱出来,所以实时性并不是很强。这种情况有望在Linux 2.6版本中得到改善,在2.6版本中采用了抢占式的调度策略。Linux 2.6 相对于2.4 内核来讲,有很多重大的改进,比如,支持更多的微处理器,对NUMA 服务器支持的改进,更好的内核互动性以及响应性,驱动模式的改变,s y s 文件系统的引入等等。本文将针对嵌入式开发中影响最大的几个方面来阐述。1. 内核大小在Linux 2.6 的配置选项中,专门有一个选项是针对嵌入式应用的,通过合理配置该选项,可以使内核的大小显著减小,这在嵌入式开发中无疑是非常重要的。NP面来详细讨论。(1)调度器内部机制55 Linux 2.6 调度算法的如下缺点进行了改进。2.4 内核中调度算法的主要缺点有:. 调度算法的时间负责度是O(n),因此,算法的性能和系统的负载有很大的关系。而在2 . 6 的调度算法中,时间复杂度是O(1)是不可抢占的,而在2.6 的调度算法中,如果进程没有拥有任何锁,则其在内核态也是可抢占的。这无疑大大提高了系统的响应性能。在进程调度算法中,最核心的数据结构是进程就绪队列。2.4 度算法只设置了一个进程就绪队列,只有一个进程就绪队列的直接不利因素就是,当某个进程的时间片已经用完后,它还要呆在就绪队列中,这样,虽然该进程在这一轮调度循环中已经不可能得CPU 的使用权,它还是要参加goodness值的计算,因此,给系统的性能造成了不必要的影响。Linux 2.6 的调度算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年思想报告实践(3篇)
- 普法知识竞赛试题及答案
- 放射科检查设备的日常维护和定期检测
- 护理抢救制度查房
- 轻钢龙骨隔墙横向龙骨安装施工工艺
- 混凝土试块抗压强度试验施工工艺
- 护理割伤管理查房
- 2026施工员(设备安装)专业知识模拟真题及答案
- 2025食品安全员真题和答案
- 某隧道主体工程应急管理措施
- 2025年上海交通大学招聘真题(行政管理岗)
- 四川省辅警考试试题及答案
- T/CIE 185-2023光时延测量通用规范
- 中国银行2025信息科技岗笔试题及答案内蒙古地区
- 淝水之战课件
- 【新教材核心素养】苏教版生物八年级上册5.12.2《消化和吸收》第1课时(教学设计)
- 中药外敷技术操作规范
- 校园贷款案例讲解
- 矿山机械 安全技术规范
- 口腔根尖片的判读
- 大件设备仓储管理制度
评论
0/150
提交评论