嵌入式系统的定义及特点精.pdf
《嵌入式系统的定义及特点精.pdf》由会员分享,可在线阅读,更多相关《嵌入式系统的定义及特点精.pdf(13页珍藏版)》请在三一文库上搜索。
1、嵌入式系统的定义及特点 定义:嵌入式系统是以应用为中心、以计算机技术为基础,软、硬件可裁剪,适应 于应用系统对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系 统。 特点:( 1)嵌入式系统是面向特定应用的。嵌入式系统中的CPU 是专门为特定应 用设计的,具有低功耗、体积小、集成度高等特点,能够把通用CPU 中许多由板 卡完成的任务集成在芯片内部,从而有利于整个系统设计趋于小型化。 (2)嵌入式系统涉及先进的计算机技术、半导体技术、电子技术、通信和软件等 各个行业。是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。 (3)嵌入式系统的硬件和软件都必须具备高度可定制性。 (
2、4)嵌入式系统的生命周期相当长。嵌入式系统和具体应用有机地结合在一起, 其升级换代也是和具体产品同步进行的。 (5)嵌入式系统本身并不具备在其上进行进一步开发的能力。在设计完成以后, 用户如果需要修改其中的程序功能,必须借助于一套专门的开发工具和环境。 (6)为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器 芯片或单片机中,而不是存贮于磁盘等载体中。 3与通用计算机相比,嵌入式系统有哪些特点?答:与通用计算机相比,嵌入式 系统有以下特点:(1)嵌入式系统通常是面向特定应用的;(2)嵌入式系统的 硬件和软件必须高效率地设计,做到量体裁衣、去除冗余;(3)有实时操作系统 的支持;
3、 (4)嵌入式系统具有较长的生命周期;(5)嵌入式系统中的软件一般 都固化在存储器芯片或单片机本身中,而不是存储在磁盘等载体中;(6)具有专 门的开发工具支持。 操作系统在嵌入式系统中所起的作用 EOS负责嵌入系统的全部软、硬件资源的分配、调度作,控制、协调并发活动; 它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。 嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化以及应用的专用 性等方面具有较为突出的特点。 嵌入式系统是以应用为中心,整合了计算机软件、硬件技术,通信技术和微电子技术,嵌入式 系统主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及应用程序等
4、四个部分组成。 嵌入式操作系统是嵌入式系统应用的核心. 嵌入式操作系统,大大地提高了嵌入式系统硬件工 作效率,并为应用软件开发提供了极大的便利。 嵌入式操作系统(嵌入式linux学习)的功能 嵌入式操作系统除具备了一般操作系统(嵌入式linux系统)最基本的功能,如任务调 度、同步机制、中断处理、文件处理等外,还有以下两个方面的功能: 1.构成一个易于编程的虚拟机平台 嵌入式操作系统构成一个虚拟机平台,EOS 把底层的硬件细节封装起来,为运行在它上 面的软件 (如中间件软件和各种应用软件提供了一个抽象的编程接口。软件开发在这个编程接 口的上进行,而不直接与机器硬件层打交道。EOS 所提供的编程
5、接口实际上就是操作系统对 外提供的系统调用函数。 2.系统资源的管理者 嵌入式操作系统是一个系统资源的管理者,负责管理系统当中的各种软硬件资源,如处理 器、内存、各种I/O 设备、文件和数据等,使得整个系统能够高效、可靠地运转。 操作系统的作用主要体现在两方面: 1屏蔽硬件物理特性和操作细节,为用户使用计算机提供了便利 的)。计算机问世初期, 构越来越复杂。 2有效管理系统资源,提高系统资源使用效率 如何有效地管理、合理地分配系统资源,提高系统资源的使用效率是操作系统 必须发挥的主要作用。资源利用率、系统吞吐量是两个重要的指标。 Linux 与嵌入式使用的 uclinux操作系统的关系 Lin
6、ux 是一种很受欢迎的操作系统,它与UNIX 系统兼容,开放源代码。它原本被 设计为桌面系统,现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应 用于嵌入式设备。 uClinux 正是在这种氛围下产生的。在uClinux 这个英文单词中 u表示 Micro,小的意思, C 表示 Control,控制的意思,所以uClinux 就是 Micro-Control-Linux ,字面上的理解就是 “针对微控制领域而设计的Linux 系统 “。 uClinux是针对控制领域的嵌入式linux 操作系统,它从Linux 2.0/2.4内核派生而来,沿袭 了主流 Linux 的绝大部分特性。适合不具备
7、内存管理单元(MMU的微处理器 / 微控制器。没有 MMU支持是 uClinux与主流 Linux 的基本差异。 标准 Linux 是针对有MMU的处理器设计的。在这种处理器上,虚拟地址被送到MMU ,把 虚拟地址映射为物理地址。通过赋予每个任务不同的虚拟物理地址转换映射,支持不同任务 之间的保护 . 对 uCLinux 来说,其设计针对没有MMU的处理器,不能使用处理器的虚拟内存管理技 术。 uCLinux仍然采用存储器的分页管理,系统在启动时把实际存储器进行分页。在加载应用 程序时程序分页加载。但是由于没有MMU管理,所以实际上uCLinux采用实存储器管理策 略。 uCLinux系统对于
8、内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。操 作系统对内存空间没有保护,各个进程实际上共享一个运行空间。一个进程在执行前,系统必 须为进程分配足够的连续地址空间,然后全部载入主存储器的连续空间中。 什么是内核? 内核是操作系统最基本的部分。它是为众多应用程序 提供对计算机硬件 的安全访问的一部分软 件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内 核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能, 是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决 定着系统的性能和稳定性。 什么是
9、 Bootlonder? 答案一搜狗百科:启动程序(英语:boot loader,也称启动加载器,引导程序)位于电脑或 其他 计算机应用 上,是指引导操作系统启动的程序。引导程序启动方式及程序视应用机型种类 而不同。 BIOS 开机完成后,bootloader就接手初始化硬件设备、创建存储器空间的映射,以 便为 操作系统内核准备好正确的软硬件环境。BootLoader是依赖于硬件而实现的,特别是在 嵌入式领域,为嵌入式系统 建立一个通用的BootLoader是很困难的。 答案二百度百科:Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小 程序,我们可以初始化硬件设备、
10、建立内存空间的映射图,从而将系统的软硬件环境带到一个 合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,Boot Loader 是严重 地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对 Boot Loader 归纳出一些通用的概念 来,以指导用户特定的 Boot Loader 设计与实现。 使用带 uclinux 操作系统的嵌入式系统应该注意什么问题? 3 uClinux的内存管理 uClinux同标准 Linux的最大区别就在于内存管理。标准Linux 是针对有MMU的处理器设计 的。在
11、这种处理器上,虚拟地址被送到MMU ,MMU把虚拟地址映射为物理地址。通过赋予 每个任务不同的虚拟物理地址转换映射,支持不同任务之间的保护。对于uCLinux来说, 其设计针对没有MMU的处理器,不能使用处理器的虚拟内存管理技术。 uClinux不能使用处理器的虚拟内存管理技术(应该说这种不带有MMU的处理器在嵌入式设 备中相当普遍)。 uClinux仍采用存储器的分页管理,系统在启动时把实际存储器进行分页。在加载应用程序时 程序分页加载。但是由于没有MMU管理,所以实际上uClinux采用实存储器管理策略(real memeory management。这一点影响了系统工作的很多方面。 uC
12、linux系统对于内存的访问是直接的,(它对地址的访问不需要经过MMU ,而是直接送到 地址线上输出),所有程序中访问的地址都是实际的物理地址。操作系统对内存空间没有保护 (这实际上是很多嵌入式系统的特点),各个进程实际上共享一个运行空间(没有独立的地址 转换表)。 一个进程在执行前,系统必须为进程分配足够的连续地址空间,然后全部载入主存储器的连续 空间中。与之相对应的是标准Linux系统在分配内存时没有必要保证实际物理存储空间是连续 的,而只要保证虚存地址空间连续就可以了。此外磁盘交换空间也是无法使用的,系统执行时 如果缺少内存将无法通过磁盘交换来得到改善。 uClinux对内存的管理减少同
13、时就给开发人员提出了更高的要求。如果从易用性这一点来说, uClinux的内存管理是一种倒退,退回了到了UNIX早期或是Dos系统时代。开发人员不得 不参与系统的内存管理。从编译内核开始,开发人员必须告诉系统这块开发板到底拥有多少的 内存(假如你欺骗了系统,那将在后面运行程序时受到惩罚),从而系统将在启动的初始化阶 段对内存进行分页,并且标记已使用的和未使用的内存。系统将在运行应用时使用这些分页内 存。 由于应用程序加载时必须分配连续的地址空间,而针对不同硬件平台的可一次成块(连续地 址)分配内存大小限制是不同(目前针对EZ328 处理器的uClinux是 128k ,而针对Coldfire
14、处理器的系统内存则无此限制),所以开发人员在开发应用程序时必须考虑内存的分配情况并 关注应用程序需要运行空间的大小。另外由于采用实存储器管理策略,用户程序同内核以及其 它用户程序在一个地址空间,程序开发时要保证不侵犯其它程序的地址空间,以使得程序不至 于破坏系统的正常工作,或导致其它程序的运行异常。 从内存的访问角度来看,开发人员的权利增大了(开发人员在编程时可以访问任意的地址空 间),但与此同时系统的安全性也大为下降。此外,系统对多进程的管理将有很大的变化,这 一点将在uClinux的多进程管理中说明。 4 uClinux的多进程处理 uClinux没有MMU管理存储器,在实现多个进程时(f
15、ork调用生成子进程)需要实现数据 保护。由于uClinux的多进程管理是通过vfork来实现,因此fork等于vfork 。这意味着 uClinux系统 fork调用完成后,要么子进程代替父进程执行(此时父进程已经sleep )直到子 进程调用exit 退出;要么调用exec 执行一个新的进程,这个时候将产生可执行文件的加载, 即使这个进程只是父进程的拷贝,这个过程也不能避免。当子进程执行exit 或 exec 后,子进 程使用 wakeup把父进程唤醒,使父进程继续往下执行。 uClinux的这种多进程实现机制同它的内存管理紧密相关。uClinux针对没有mmu处理器开 发,所以被迫使用一
16、种flat 方式的内存管理模式,启动新的应用程序时系统必须为应用程序分 配存储空间,并立即把应用程序加载到内存。缺少了MMU的内存重映射机制,uClinux必须 在可执行文件加载阶段对可执行文件reloc 处理,使得程序执行时能够直接使用物理内存。 5 uCLinux针对实时性的解决方案 uClinux本身并没有关注实时问题,它并不是为了Linux的实时性而提出的。另外有一种 Linux :RTLinux 关注实时问题。RT-Linux执行管理器把普通Linux 的内核当成一个任务运 行,同时还管理了实时进程。而非实时进程则交给普通Linux 内核处理。这种方法已经应用于 很多的操作系统用于增
17、强操作系统的实时性,包括一些商用版UNIX系统, Windows NT 等 等。这种方法优点之一是实现简单,且实时性能容易检验。优点之二是由于非实时进程运行于 标准 Linux 系统,同其它Linux 商用版本之间保持了很大的兼容性。优点之三是可以支持硬实 时时钟的应用。uClinux可以使用RT-Linux的 patch ,从而增强uClinux的实时性,使得 uClinux可以应用于工业控制、进程控制等一些实时要求较高的应用。 6 uClinux的开发环境 1,GNU 开发套件 GNU开发套件作为通用的Linux开放套件,包括一系列的开发调试工具。主要组件: Gcc:编译器,可以做成交叉编
18、译的形式,即在宿主机上开发编译目标上可运行的二进制文 件。 Binutils :一些辅助工具,包括objdump(可以反编译二进制文件),as(汇编编译器),ld (连接器)等等。 Gdb :调试器,可使用多种交叉调试方式,gdb-bdm(背景调试工具),gdbserver(使用 以太网络调试)。 2, Clinux的打印终端 通常情况下, uClinux的默认终端是串口,内核在启动时所有的信息都打印到串口终端(使用 printk函数打印),同时也可以通过串口终端与系统交互。 uClinux在启动时启动了telnetd(远程登录服务),操作者可以远程登录上系统,从而控制 系统的运行。至于是否允
19、许远程登录可以通过烧写romfs文件系统时由用户决定是否启动远 程登录服务。 3, 交叉编译调试工具 支持一种新的处理器,必须具备一些编译,汇编工具,使用这些工具可以形成可运行于这种处 理器的二进制文件。对于内核使用的编译工具同应用程序使用的有所不同。在解释不同点之 前,需要对gcc连接做一些说明: ld ( link description)文件: ld 文件是指出连接时内存映象格式的文件。 crt0.S :应用程序编译连接时需要的启动文件,主要是初始化应用程序栈。 pic :position independence code ,与位置无关的二进制格式文件,在程序段中必须包括 reloc
20、段,从而使的代码加载时可以进行重新定位。 内核编译连接时,使用ucsimm.ld文件,形成可执行文件映象,所形成的代码段既可以使用 间接寻址方式(即使用reloc段进行寻址),也可以使用绝对寻址方式。这样可以给编译器更 多的优化空间。因为内核可能使用绝对寻址,所以内核加载到的内存地址空间必须与ld 文件 中给定的内存空间完全相同。 应用程序的连接与内核连接方式不同。应用程序由内核加载(可执行文件加载器将在后面讨 论),由于应用程序的ld文件给出的内存空间与应用程序实际被加载的内存位置可能不同, 这样在应用程序加载的过程中需要一个重新地位的过程,即对reloc段进行修正,使得程序进 行间接寻址时
21、不至于出错。(这个问题在i386 等高级处理器上方法有所不同)。 由上述讨论,至少需要两套编译连接工具: 1) 二进制工具(Binutils ) GNU binutils包包括了汇编工具、链接器和基本的目标文件处理工具。对binutils包的设置 定义了所需的目标文件的格式和字节顺序。Binutils包种的工具都使用了二进制文件描述符 (BFD )库来交换数据。通过设置文件config.bfd,可以指定默认的二进制文件格式(例如 elf little endian)和任何工具可用的格式,见例1。 例 1 在 config.bfd中添加的用来指定目标二进制格式的代码 arm-*-uClinux*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 定义 特点
链接地址:https://www.31doc.com/p-5532526.html