第1章嵌入式系统导论Word格式文档下载.docx

上传人:b****1 文档编号:5675792 上传时间:2023-05-05 格式:DOCX 页数:18 大小:54KB
下载 相关 举报
第1章嵌入式系统导论Word格式文档下载.docx_第1页
第1页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第2页
第2页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第3页
第3页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第4页
第4页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第5页
第5页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第6页
第6页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第7页
第7页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第8页
第8页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第9页
第9页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第10页
第10页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第11页
第11页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第12页
第12页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第13页
第13页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第14页
第14页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第15页
第15页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第16页
第16页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第17页
第17页 / 共18页
第1章嵌入式系统导论Word格式文档下载.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第1章嵌入式系统导论Word格式文档下载.docx

《第1章嵌入式系统导论Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第1章嵌入式系统导论Word格式文档下载.docx(18页珍藏版)》请在冰点文库上搜索。

第1章嵌入式系统导论Word格式文档下载.docx

Unit),并一举成为嵌入式系统领域中异军突起的新秀。

与此同时,嵌入式系统的程序员也开始基于一些简单的“操作系统”开发嵌入式应用软件,大大缩短了开发周期、提高了开发效率。

出现了大量高可靠、低功耗的嵌入式CPU(如PowerPC等),各种简单的嵌入式操作系统开始出现并得到迅速发展。

此时的嵌入式操作系统虽然还比较简单,但已经初步具有了一定的兼容性和扩展性,内核精巧且效率高,主要用来控制系统负载以及监控应用程序的运行。

在MCU微控制器阶段,主要的技术发展方向是:

不断扩展满足嵌入式应用时对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。

它所涉及的领域都与对象系统相关,由单片微型计算机发展到微控制器,以寻求应用系统在芯片上的最大化解决。

◆实时操作系统阶段

20世纪90年代,在分布控制、柔性制造、数字化通信和信息家电等巨大需求的牵引下,嵌入式系统进一步飞速发展,而面向实时信号处理算法的DSP产品则向着高速度、高精度、低功耗的方向发展。

DSP(DigitalsignalProcessor)是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令执行速度。

在这一阶段,随着硬件实时性要求的提高,嵌入式系统的软件规模也不断扩大,逐渐形成了实时多任务操作系统(RTOS),并开始成为嵌入式系统的主流。

RTOS是具有实时性且能支持实时控制系统工作的操作系统。

操作系统的实时性得到了很大改善,已经能够运行在各种不同类型的微处理器上,具有高度的模块化和扩展性。

此时的嵌入式操作系统已经具备了文件和目录管理、设备管理、多任务、网络、图形用户界面(GUI)等功能,并提供了大量的应用程序接口(API),从而使得应用软件的开发变得更加简单。

◆面向Internet阶段

21世纪无疑将是一个网络的时代,将嵌入式系统应用到各种网络环境中去的呼声自然也越来越高。

目前大多数嵌入式系统还孤立于Internet之外,随着Internet的进一步发展,以及Internet技术与信息家电、工业控制技术等的结合日益紧密,嵌入式设备与Internet的结合才是嵌入式技术的真正未来。

信息时代和数字时代的到来,为嵌入式系统的发展带来了巨大的机遇,同时也对嵌入式系统厂商提出了新的挑战。

目前,嵌入式技术与Internet技术的结合正在推动着嵌入式技术的飞速发展,嵌入式系统的研究和应用产生了如下新的显著变化:

1.新的微处理器层出不穷,嵌入式操作系统自身结构的设计更加便于移植,能够在短时间内支持更多的微处理器。

2.嵌入式系统的开发成了一项系统工程,开发厂商不仅要提供嵌入式软硬件系统本身,同时还要提供强大的硬件开发工具和软件支持包。

3.通用计算机上使用的新技术、新观念开始逐步移植到嵌入式系统中,如嵌入式数据库、移动代理、实时CORBA等,嵌入式软件平台得到进一步完善。

4.各类嵌入式Linux操作系统迅速发展,由于具有源代码开放、系统内核小、执行效率高、网络结构完整等特点,很适合信息家电等嵌入式系统的需要,目前已经形成了能与WindowsCE、PalmOS等嵌入式操作系统进行有力竞争的局面。

5.网络化、信息化的要求随着Internet技术的成熟和带宽的提高而日益突出,以往功能单一的设备如电话、手机、冰箱、微波炉等功能不再单一,结构变得更加复杂,网络互联成为必然趋势。

6.精简系统内核,优化关键算法,降低功耗和软硬件成本。

7.提供更加友好的多媒体人机交互界面。

1.1.2嵌入式系统的组成

嵌入式系统是以应用为中心,以计算机为基础,软硬件可裁剪,适用于系统对功能、可靠性、成本、功耗严格要求的专用计算机系统,整个嵌入式系统由四大部分组成:

嵌入式处理器、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件。

嵌入式系统的体系结构如图1-1所示。

 

图1-1嵌入式系统的组成

◆嵌入式处理器

嵌入式处理器是嵌入式系统的核心。

嵌入式处理器与通用处理器最大的不同点在于,嵌入式CPU大多工作在为特定用户群所专门设计的系统中,它将通用CPU中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。

◆嵌入式外围设备

在嵌入系统硬件系统中,除了中心控制部件(MCU、DSP、EMPU、SOC)以外,用于完成存储、通信、调试、显示等辅助功能的其他部件,事实上都可以算作嵌入式外围设备。

目前常用的嵌入式外围设备按功能可以分为存储设备(静态存储器和动态存储器)、通信设备(包括RS-232接口、USB接口、以太网接口等等)和显示设备(阴极射线管CRT、液晶显示器LCD和触摸屏)。

◆嵌入式操作系统

嵌入式操作系统根据应用场合可以分为两大类:

一类是面向消费电子产品的非实时系统,这类设备包括个人数字助理(PDA)、移动电话、机顶盒(STB)等;

另一类则是面向控制、通信、医疗等领域的实时操作系统(RealTimeOperatingSystem),RTOS是具有实时性且能从硬件方面支持实时控制系统工作的操作系统。

目前嵌入式Linux操作系统以价格低廉、功能强大又易于移植而正在被广泛采用,成为嵌入式操作系统中的新兴的力量。

◆嵌入式应用软件

嵌入式应用软件是针对特定应用领域,基于某一固定的硬件平台,用来达到用户预期目标的计算机软件,由于用户任务可能有时间和精度上的要求,因此有些嵌入式应用软件需要特定嵌入式操作系统的支持。

嵌入式应用软件和普通应用软件有一定的区别,它不仅要求其准确性、安全性和稳定性等方面能够满足实际应用的需要,而且还要尽可能地进行优化,以减少对系统资源的消耗,降低硬件成本。

1.1.3嵌入式Linux的特点

嵌入式Linux(EmbeddedLinux)是指对Linux经过裁减小型化后,可固化在存储器中,应用于特定嵌入式场合的专用Linux操作系统。

嵌入式Linux的开发和研究已经成为目前操作系统领域的一个热点,与其它嵌入式操作系统相比,嵌入式Linux具有如下一些特点:

◆广泛的硬件支持

◆高效稳定的内核

◆开放源码,资源丰富

◆强大的网络支持功能

◆完善的文件管理机制

◆优秀的开发工具

◆完全免费

1.1.4嵌入式Linux的版本

嵌入式Linux发展到现在已经有很多种版本了,按照实际应用场合及特殊的功能需求,嵌入式Linux最常用的是以下两个版本。

(1)实时Linux操作系统RTLinux。

RTLinux是美国新墨西哥州大学计算机系研制开发的。

它在底层实现了添加Linux的实时特性支持。

经过加入实时处理后,RTLinux就完全能够达到硬实时系统的性能指标。

(2)μCLinux操作系统。

μCLinux是嵌入式linux的一个典范之作。

在μCLinux这个英文单词中μ表示Micro,小的意思,C表示Control,控制的意思,μCLinux就是Micro-Control-linux,字面上的理解就是“针对微控制领域而设计的linux系统。

我们实验教学系统就是采用的μCLinux操作系统。

下面有单独一节对μCLinux进行全面分析。

1.2Linux文件系统基础

1.2.1Linux文件结构

Linux特性之一就是对多种文件系统的支持,这种特性使得Linux很容易地同其他操作系统共存。

Linux将各种安装的文件和文件系统以一个完整的虚拟文件系统的形式呈现给用户。

文件结构是文件存放在磁盘等存贮设备上的组织方法。

主要体现在对文件和目录的组织上。

  目录提供了管理文件的一个方便而有效的途径。

  Linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。

Linux采用的是树型结构。

最上层是根目录,其他的所有目录都是从根目录出发而生成的。

微软的DOS和windows也是采用树型结构,但是在DOS和windows中这样的树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,他们之间的关系是并列的。

但是在Linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个。

从结构上讲,各个磁盘分区上的树型目录不一定是并列的。

 因为Linux是一个多用户系统,制定一个固定的目录规划有助于对系统文件和不同的用户文件进行统一管理。

1.2.2Linux目录管理

Linux系统上命名目录的方式是相当隐秘的,在嵌入式Linux中,文件系统通常还是按照标准的目录结构来存放所有的文件。

通过上节的简要描述,大家对Linux的文件系统及目录结构有了一些认识,在这一节将列出Linux下的主要目录的功用。

(1)根目录(/)

目录结构上的最高点被称为根目录,用单个字符斜杠(“/”)表示根目录。

注意:

“/”目录与root用户的主目录不是一回事,其主目录为/root,因此/root目录是根目录“/”的子目录。

在Linux系统上的其它目录都包含在根目录之下的层次结构中,这一点不同于Windows系统。

Windows系统中的每个驱动器被赋予了自己的字母及其自己的目录结构。

在Linux中,系统上所有的存储设备都被装载到根目录之下的每个目录中,或者在根目录下,或者在更下层。

(2)/bin子目录

这个子目录包含超级用户和一般用户使用的命令。

这些命令对于系统来说是至关重要的,它们提供一些操作,比如拷贝、移动和删除文件、创建和打开文件、查看文本文件等。

用户通常不会去改变/bin目录的内容。

(3)/boot目录

这个目录包含系统启动所需的大多数文件。

微机启动时需要的其他文件存储在/etc和/shin目录中。

(4)/dev子目录

这个目录包含设备文件和其他特殊文件。

需要使用什么设备,再添加相应的设备文件。

下表列出了用户可以在/dev中发现的各类设备例子。

表1设备例子

设备名称

设备类型

/dev/ide

整个IDE主硬盘驱动器

/dev/hdb1

在IDE辅硬盘驱动器上的第一个分区

/dev/fd0

第一个软盘驱动器

/dev/lp0

第一个并行打印机

/dev/midioo

第一个MIDI端口

/dev/null

空设备

/dev/psaux

PS2键盘端口

/dev/vamdisk

RAM磁片

/dev/scd0

第一个SCSICD-ROM驱动器

/dev/sda

第一个完整的SCSI硬盘驱动器(作为U盘设备名)

/dev/tty1

第一个虚拟控制台

这不是一个完整的列表,但它基本列出了需要知道的设备。

对于这个目录不要做不必要的操作。

(5)/etc子目录

这个目录包含启动和正常运行Linux系统所需的配置文件。

这些文件大多能够被编辑(通过配置工具或文本编辑器来完成)。

大多数Linux集成套件提供了许多辅助软件用于配置/etc目录中的文件,以便使用户更容易使用Linux。

(6)/home子目录

在典型情况下,这个目录拥有系统中每个用户的子目录。

(7)/lib子目录

这个目录包含了位于/bin和/shin中程序需要的库文件。

一个库文件是一个程序文件,它包含了能够被多个不同程序使用的代码。

将这些共用代码以库的形式存放起来,可以减轻程序设计者的工作量。

(8)/mnt子目录

这个目录用于临时装载文件系统,例如,用户可以将软盘驱动器/dev/fd0装载到已经在根目录之下建立的一个独立目录(/fd0)中,但是用户同样可以很容易地将/dev/fd0装载为/mnt/floppy(事实上,许多Linux集成套件通过默认地创建这种装载点而帮助用户完成了这一工作)。

使用/mnt/floppy将使得用户的根目录较为整洁。

(9)/proc子目录

这个目录用于同Linux内核交换数据。

在这个目录中有一些能够查看的文本文件,它们包含一些系统信息,比如内核版本、系统正常工作时间和有关系统中处理器及内存的信息。

(10)/root子目录

/root目录被用做系统管理员的主目录。

(11)sbin子目录

该目录存放的是系统管理员使用的系统管理程序。

(12)tmp子目录

这个目录是公用的临时文件存储点。

(13)/usr子目录

这个目录包含系统中每个用户都使用的文件和程序。

这里存放了随同Linux集成套件一起安装的大多数程序和实用工具,并且能够供普通用户使用。

文件系统的层次结构规定了这个目录具有只读属性,用户不能改变该目录中的内容。

(14)/usr/local目录

在/usr目录中,/usr/local目录是一个例外,用户可以修改其中的内容。

在Linux中,一个文件可以被装载到任何目录名称之下,在许多Linux安装过程中,/usr/local是安装大多数第三方应用软件的地方。

/usr/local目录一开始是空的,可以在该目录中存放从web上下载、购买或者与网络邻居共用的程序。

(15)/usr/src目录

这个目录包含Linux的源代码,因为可能有用户想自己编译内核。

这个目录是重要的,当一个集成套件被安装到用户PC中时,它应该用内核原始文件和头文件填充/usr/src目录。

(16)/var目录

/var目录是Linux系统存储可变数据的地方。

实验教学系统μCLinux开发软件的安装目录结构参见第2章第3小节。

1.2.3文件系统的挂载

Linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。

Linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。

这里所说的“按一定方式”就是指的挂载。

将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。

把该子目录称为挂载点。

1、挂载点必须是一个目录。

  2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。

对于其他操作系统建立的文件系统的挂载也是这样。

但是需要理解的是:

光盘、软盘、U盘或其他操作系统使用的文件系统的格式与Linux使用的文件系统格式是不一样的。

光盘是ISO9660;

软盘是fat16或ext2;

windowsNT是fat16、NTFS;

windows98是fat16、fat32;

windows2000和windowsXP是fat16、fat32、NTFS。

挂载前要了解Linux是否支持所要挂载的文件系统格式。

挂载时使用mount命令,格式如下:

 mount[-参数][设备名称][挂载点]

其中常用的参数有:

   ◆-t<

文件系统类型>

指定设备的文件系统类型,常见的有:

    ext2linux目前常用的文件系统

    msdosMS-DOS的fat,就是fat16

    vfatwindows98常用的fat32

    nfs网络文件系统

    iso9660CD-ROM光盘标准文件系统

    ntfswindowsNT2000的文件系统

    hpfsOS/2文件系统

    auto自动检测文件系统

   ◆-o<

选项>

指定挂载文件系统时的选项。

有些也可用在/etc/fstab中。

常用的有:

    codepage=XXX代码页

    iocharset=XXX字符集

    ro以只读方式挂载

    rw以读写方式挂载

    nouser使一般用户无法挂载

    user可以让一般用户挂载设备

1.3μCLinux系统分析

μCLinux是针对那些不具有内存管理单元(MemoryManagementUnitMMU)的微处理器芯片而设计的。

μCLinux改写和裁减了标准Linux内核代码以缩小其内核,尽管μCLinux的内核远远小于标准Linux的内核,但它仍然保持了Linux操作系统几乎所有的优秀特性。

1.3.1μCLinux的内核加载方式

μCLinux的内核有两种可选的运行方式:

可以在flash上直接运行,也可以加载到内存中运行。

这种做法可以减少内存需要。

Flash运行方式:

把内核的可执行映象烧写到flash上,系统启动时从flash的某个地址开始逐句执行。

这种方法实际上是很多嵌入式系统采用的方法。

内核加载方式:

把内核的压缩文件存放在flash上,系统启动时读取压缩文件在内存里解压,然后开始执行,这种方式相对复杂一些,但是运行速度可能更快(ram的存取速率要比flash高)。

同时这也是标准Linux系统采用的启动方式。

1.3.2μCLinux的文件系统

支持多文件系统是Linux的一个重要特性,μCLinux同样把这一特性带进了嵌入式系统中,并进行了一些裁减。

μCLinux系统采用romfs文件系统,这种文件系统相对于一般的ext2文件系统要求更少的空间。

空间的节约来自于两个方面,首先内核支持romfs文件系统比支持ext2文件系统需要更少的代码,其次romfs文件系统相对简单,在建立文件系统超级块(superblock)需要更少的存储空间。

Romfs文件系统不支持动态擦写保存,对于系统需要动态保存的数据采用虚拟ram盘的方法进行处理(ram盘将采用ext2文件系统)。

Romfs是最简单的只读文件系统,占用空间最少,可用来做根文件系统(rootfilesystem),根文件系统里存放Linux启动时要用到的设备文件、配置文件和应用程序,例如:

/dev/tty0,etc/rc,/bin/init,/bin/sh等。

1.3.3μCLinux的应用程序库

μCLinux小型化的另一个做法是重写了应用程序库,相对于越来越大且越来越全的glibc库,μCLinux对libc做了精简。

μCLinux对用户程序采用静态连接的形式,这种做法会使应用程序变大,但是基于内存管理的问题,不得不这样做(这将在下面对μCLinux内存管理展开分析时进行说明),同时这种做法也更接近于通常嵌入式系统的做法。

1.3.4μCLinux的内存管理

应该说μCLinux同标准Linux的最大区别就在于内存管理,同时也由于μCLinux的内存管理引发了一些标准Linux所不会出现的问题。

下面将把μCLinux内存管理同标准Linux的内存管理部分进行比较分析。

标准Linux使用虚拟存储器技术,这种技术用于提供比计算机系统中实际使用的物理内存大得多的内存空间。

使用者将感觉到好像程序可以使用非常大的内存空间,从而使得编程人员在写程序时不用考虑计算机中的物理内存的实际容量。

标准Linux是针对有内存管理单元的处理器设计的。

在这种处理器上,虚拟地址被送到内存管理单元(MMU),把虚拟地址映射为物理地址。

通过赋予每个任务不同的虚拟--物理地址转换映射,支持不同任务之间的保护。

地址转换函数在每一个任务中定义,在一个任务中的虚拟地址空间映射到物理内存的一个部分,而另一个任务的虚拟地址空间映射到物理存储器中的另外区域。

计算机的存储管理单元(MMU)一般有一组寄存器来标识当前运行的进程的转换表。

在当前进程将CPU放弃给另一个进程时(一次上下文切换),内核通过指向新进程地址转换表的指针加载这些寄存器。

MMU寄存器是有特权的,只能在内核态才能访问。

这就保证了一个进程只能访问自己用户空间内的地址,而不会访问和修改其它进程的空间。

当可执行文件被加载时,加载器根据缺省的ld文件,把程序加载到虚拟内存的一个空间,因为这个原因实际上很多程序的虚拟地址空间是相同的,但是由于转换函数不同,所以实际所处的内存区域也不同。

而对于多进程管理当处理器进行进程切换并执行一个新任务时,一个重要部分就是为新任务切换任务转换表。

虚存系统并不是没有代价的。

内存管理需要地址转换表和其他一些数据结构,留给程序的内存减少了。

地址转换增加了每一条指令的执行时间,而对于有额外内存操作的指令会更严重。

当进程访问不在内存的页面时,系统发生失效。

系统处理该失效,并将页面加载到内存中,这需要极耗时间的磁盘I/O操作。

总之内存管理活动占用了相当一部分cpu时间(在较忙的系统中大约占10%)。

对于μCLinux来说,其设计针对没有MMU的处理器,即μCLinux不能使用处理器的虚拟内存管理技术(应该说这种不带有MMU的处理器在嵌入式设备中相当普偏)。

μCLinux仍然采用存储器的分页管理,系统在启动时把实际存储器进行分页。

在加载应用程序时程序分页加载。

但是由于没有MMU管理,所以实际上μCLinux采用实存储器管理策略(realmemeorymanagement)。

这一点影响了系统工作的很多方面。

μCLinux系统对于内存的访问

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2