嵌入式操作系统的移植_第1页
嵌入式操作系统的移植_第2页
嵌入式操作系统的移植_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式操作系统的移植 以Linux系统移植为例摘要:本文简述了嵌入式操作系统及其移植的目的,分析了嵌入式操作系统移植的过程与具体操作步骤,提供了移植过程中的剪裁方法,并介绍了多任务实时处理在软件编程中的应用。0引言随着科技的发展,微机的硬件规模越来越大,功能越来越强,从而给运行嵌入式操作系统提供了物质基础。各种操作系统就此应运而生。嵌入式操作系统,是一种运行在嵌入式硬件平台上,对整个系统及其所操作的部件、装置等资源进行统一配置、协调和控制的系统软件,负责嵌入系统的全部软、硬件资源的分配、调度工作,控制协调并发活动。与普通的操作系统相比,嵌入式操作系统主要有微型化、可裁剪性、高可靠性、易一致性几个不同点。按应用范围划分,有通用型和专用型两种。通用型可用于多种应用环境,如:WindowsCE、VxWorks、MLinux以及M7OSTI等;专用型则有Symbian、PlamOS等。1嵌入式操作系统移植的目的在电子技术高速发展的今天,单片机嵌入式技术的应用越来越广泛。嵌入式实时操作系统在目前的嵌入式应用中,尤其在功能复杂、系统庞大的应用中也愈来愈重要,其能大大提高系统可靠性和开发效率。市场上单片机的品牌、种类、型号繁多,如:Inter公司的51系列单片机、德州仪器(TI)的TMS370和MSP430两大系列通用单片机等。由于嵌入式操作系统的可移植性,我们只需对嵌入操作系统做一些修改,就可以使其运行在不同的硬件平台上,帮助我们去管理和控制不同的硬件资源和调度任务。这个修改的过程就可以称作移植,对于嵌入式操作系统在实际工程中的推广应用有着重要的意义。由于嵌入式系统所使用的芯片型号多种多样,很多芯片不能直接兼容,所以通过修改部分代码,把能在甲芯片上运行的程序,也能在与之不完全兼容的乙芯片上正确运行,就叫移植。系统移植的概念也相近,只是涉及到的芯片更多。2嵌入式操作系统移植的方法及具体步骤对不同的操作系统,其移植方法不同。以下以Linux操作系统的移植为例进行说明。2.1移植准备在进行移植时,首要任务是建立一个最基本的开发环境。该环境具备一套跨平台开发工具。它包含有编译器、连接器、除错器等,另外还要准备制作文档系统所需的软件。以PC机作为宿主机构建一套完整的交叉编译系统来调试目标板。而在目标平台上只需要准备一段开机程序,如Etherboot,Redboot等,此程序可以在除错阶段取得系统的映像(image)文件后启动或者直接从Flashroom中来引导系统。一旦启动后就进入Linux操作系统,同时也可以使用GDBserver作为远端除错工具。2.2移植过程及具体操作步骤Linux操作系统的移植总共三大部分:内核的重新编译,bootloader的重新编译和根文件系统的移植。主要有以下几个过程:(1) 内核配置(2) 体系结构相关代码修改(3) 连接脚本(4) 中断处理(5) 加载文件系统(6) 编写驱动程序(7) 编译文件系统2.2.1内核的重新编译为了使Linux内核能在不同的目标平台上运行,需要根据平台的处理器类型和外围接口,对Linux内核文件进行正确的配置。如果修改完Linux的内核文件,使其能在目标平台上正确跑起来,那么整个移植过程就基本完成了。具体步骤如下:(1) 首先获取某一版本的Linux内核源码,根据具体的目标平台对源码进行必要的改写(主要是修改体系结构相关的部分);(2) 添加一部分外设驱动(如网卡驱动、USB驱动),打造一款适合于目标平台的新的操作系统,也就是常说的内核配置或内核定制;(3) 对该系统进行针对目标平台的交叉编译,生成一个内核映象文件;(4) 最后通过一些手段将该映象烧写到目标平台中。2.2.2bootloader的重新编译bootloader的重新编译一般分为两个阶段:(1) 根据开发板的硬件资料做一些初始化的工作(汇编):初始化PLL;初始化存储空间,SDRAM,地址空间分配;初始化串口,LED等基本调试硬件;设置系统运行模式,设置各种模式的堆栈。(2) 实现bootloader通用的一些功能:用户界面(命令行);串口驱动,网口驱动,usb驱动,flash驱动;下载协议xmoden,tftp;下载功能(内核,ramdisk等),烧写flash。2.2.3根文件系统的移植移植根文件系统需要文件:busybox-1.13.4.tar.bz2(1) 解压busybox-1.13.4.tar.bz2(2) 编辑Makefile文件(3) 进行默认配置(4) 对配置信息进行修改(5) 编译(6) 对配置信息进行修改(7) 创建配置文件(8) 复制常用的库文件3移植过程中的剪裁方法3.1进行方式进行方式必须高效地建立系统,基本可行的方法有两种:从其中一个发行版本中把不必要的部份全部删掉,留下我们想要的系统。把系统所有的功能依规格从新建立起来。3.2开发环境要建立一个最基本的开发环境,必须具备一套跨平台的开发工具(CrossDevelopmentKit),包含有编译器,连接器,调试器等。另外还要准备制作文件系统所需的程序。而在目标平台上,只需准备一段系统开机程序,如etherboot,redboot等。此程序可以在调试阶段时,从网络取得系统映像档(image)后启动,或是直接从闪存中,把系统启动。一旦启动后,就进入Linux的操作系统,同时亦可使用GDBserver作为远端调试的工具。3.3开发过程首先要准备Linux的内核,配上根目录所在的文件系统,再加上守护进程程序和应用程序等,经过压缩后,打包成一个含有内核的映像文件。目标平台透过网络或闪存,取得映像文件后,进行解压缩,经过系统启动,初始化后,就是一台使用嵌入式Linux为操作系统的机器。4多任务实时处理在软件编程中的应用实时设计中,主要涉及到两方面的问题:多任务实时处理的并发性与实时性以及其激活方式。所有的事件驱动和时间驱动都体现在设置相应的任务标识和线程标识。当硬件环境一定时,依据这些标识,通过安排系统内中断响应方式和调整任务调度算法,可以有效解决多任务并行问题,因为系统的实时性主要取决于这两点。4.1并发性与实时性实时操作中的多任务引起的并发性和实时性,要求操作系统对资源分配具有更强的控制能力。通常的分配办法是设立前台与后台两个作业。前台作业中包含实时采集、控制、处理有关的任务,任务优先级较高;后台作业一般是对数据进行分析、输出数据、响应操作员请求等任务,优先级较低。后台作业中与后台作业并非完全孤立的;后台作业所需数据由前台作业存储共享内存区内,作业之间通过共享存储区进行数据交换。4.2激活方式实时任务总是由某个事件发生或时间条件满足来激活。事件有两种:内部事件和外部事件。时间驱动也有两种:按绝对时间驱动和按相对时间驱动。内部事件驱动是指某一程序运行的结果导致另一任务的启动,这个结果可能是数据满足一定条件,也可能是释放了某一资源;而最典型的实时任务是由外部事件驱动的。在实时系统中,外部事件发生有时是不可预测的,由外部事件驱动的任务一般是需要立即执行的任务,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论