嵌入式操作系统uClinux_第1页
全文预览已结束

下载本文档

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

文档简介

1、嵌入式操作系统uclinux操作系统是嵌入式系统的灵魂,而且在同一个硬件平台上可以嵌入不同的嵌入式操作系统。比如7tdmi内核,可以嵌入nucleus、等操作系统。在此主要对uclinux的举行介绍,嵌入式uclinux操作系统主要有三个基本部分组成:引导程序、uclinux内核(由内存管理、进程管理和中断处理等构成)和文件系统。uclinux可以通过定制使内核小型化,还可以加上gui(图形用户界面)和定制应用程序,并将其放在rom、ram、flash或disk on chip中启动。因为嵌入式uclinux操作系统的内核定制高度灵便性,开发者可以很简单地对其举行按需配置,来满足实际应用需要。

2、又因为uclinux是源代码藏匿,因此开发人员惟独了解内核原理就可以自己开发部分软件,例如增强各类驱动程序。下面将具体分析嵌入式操作系统uclinux。2 嵌入式ucinux内核结构uclinux内核结构1所示:图1代表了内核的功能结构,与基本相同,不同的只是对内存管理和进程管理举行改写,以满足无mmu处理器的要求。uclinux是linux 操作系统的一种,是由linux2.0内核进展来的,是专为没有mmu的微处理器(如arm7tdmi、coldfire 等)设计的嵌入式linux操作系统。另外,因为大多数内核源代码都被重写,uclinux的内核要比原linux 2.0内核小的多, 但保留了

3、linux 操作系统的主要优点:稳定性,优异的网络能力以及优秀的文件系统支持。3 uclinux的内存管理uclinux同标准linux的最大区分就在于内存管理。标准linux是针对有mmu的处理器设计的。在这种处理器上,虚拟地址被送到mmu,mmu把虚拟地址映射为物理地址。通过给予每个任务不同的虚拟物理地址转换映射,支持不同任务之间的庇护。对于uclinux来说,其设计针对没有mmu的处理器,不能用法处理器的虚拟内存管理技术。uclinux不能用法处理器的虚拟内存管理技术(应当说这种不带有mmu的处理器在嵌入式设备中相当普遍)。uclinux仍采纳存储器的分页管理,系统在启动时把实际存储器举

4、行分页。在加载应用程序时程序分页加载。但是因为没有mmu管理,所以事实上uclinux采纳实存储器管理策略(real memeory management)。这一点影响了系统工作的无数方面。uclinux系统对于内存的拜访是挺直的,(它对地址的拜访不需要经过mmu,而是挺直送到地址线上输出),全部程序中拜访的地址都是实际的物理地址。操作系统对内存空间没有庇护(这事实上是无数嵌入式系统的特点),各个进程事实上分享一个运行空间(没有自立的地址转换表)。一个进程在执行前,系统必需为进程分配足够的延续地址空间,然后所有载入主存储器的延续空间中。与之相对应的是标准linux系统在分配内存时没有须要保证明

5、际物理存储空间是延续的,而只要保证虚存地址空间延续就可以了。此外磁盘交换空间也是无法用法的,系统执行时假如缺少内存将无法通过磁盘交换来得到充实。uclinux对内存的管理削减同时就给开发人员提出了更高的要求。假如从易用性这一点来说,uclinux的内存管理是一种倒退,退回了到了unix早期或是dos系统时代。开发人员不得不参加系统的内存管理。从编译内核开头,开发人员必需告知系统这块开发板到底拥有多少的内存(如果你哄骗了系统,那将在后面运行程序时受到惩处),从而系统将在启动的初始化阶段对内存举行分页,并且标志已用法的和未用法的内存。系统将在运行应用时用法这些分页内存。因为应用程序加载时必需分配延

6、续的地址空间,而针对不同硬件平台的可一次成块(延续地址)分配内存大小限制是不同(目前针对ez328处理器的uclinux是128k,而针对coldfire处理器的系统内存则无此限制),所以开发人员在开发应用程序时必需考虑内存的分配状况并关注应用程序需要运行空间的大小。另外因为采纳实存储器管理策略,用户程序同内核以及其它用户程序在一个地址空间,程序开发时要保证不侵害其它程序的地址空间,以使得程序不至于破坏系统的正常工作,或导致其它程序的运行异样。从内存的拜访角度来看,开发人员的权利增大了(开发人员在编程时可以拜访随意的地址空间),但与此同时系统的平安性也大为下降。此外,系统对多进程的管理将有很大

7、的变幻,这一点将在uclinux的多进程管理中解释。4 uclinux的多进程处理uclinux没有mmu管理存储器,在实现多个进程时(fork调用生成子进程)需要实现数据庇护。因为uclinux的多进程管理是通过vfork来实现,因此fork等于vfork。这意味着uclinux系统fork调用尽成后,要么子进程代替父进程执行(此时父进程已经sleep)直到子进程调用exit退出;要么调用exec执行一个新的进程,这个时候将产生可执行文件的加载,即使这个进程只是父进程的拷贝,这个过程也不能避开。当子进程执行exit或exec后,子进程用法wakeup把父进程唤醒,使父进程继续往下执行。ucl

8、inux的这种多进程实现机制同它的内存管理紧密相关。uclinux针对没有mmu处理器开发,所以被迫用法一种flat方式的内存管理模式,启动新的应用程序时系统必需为应用程序分配存储空间,并立刻把应用程序加载到内存。缺少了mmu的内存重映射机制,uclinux必需在可执行文件加载阶段对可执行文件reloc处理,使得程序执行时能够挺直用法物理内存。5 uclinux针对实时性的解决计划uclinux本身并没有关注实时问题,它并不是为了linux的实时性而提出的。另外有一种linux:rtlinux关注实时问题。rt-linux执行管理器把一般linux的内核当成一个任务运行,同时还管理了实时进程。

9、而非实时进程则交给一般linux内核处理。这种办法已经应用于无数的操作系统用于增加操作系统的实时性,包括一些商用版unix系统,windows nt等等。这种办法优点之一是实现容易,且实时性能简单检验。优点之二是因为非实时进程运行于标准linux系统,同其它linux商用版本之间保持了很大的兼容性。优点之三是可以支持硬实时时钟的应用。uclinux可以用法rt-linux的patch,从而增加uclinux的实时性,使得uclinux可以应用于工业控制、进程控制等一些实时要求较高的应用。6 uclinux的开发环境1,gnu开发套件gnu开发套件作为通用的linux开放套件,包括一系列的开发调试工具。主要组件:gcc: 编译器,可以做成交错编译的形式,即在宿主机上开发编译目标上可运行的二进制文件。binutils:一些辅助工具,包括objdump(可以反编译二进制文件),as(汇编编译器),ld()等等。gdb:调试器,可用法多种交错调试方式,gdb-bdm(背景调试工具),g

温馨提示

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

评论

0/150

提交评论