《嵌入式 Linux C 语言应用程序设计(修订版)》——第 1 章 嵌入式系统基础知识 1.1 嵌入式系统概述

第 1 章 嵌入式系统基础知识

本章目标

嵌入式系统产业作为朝阳产业正在蓬勃发展,优秀的操作系统Linux也凭借其高效、开放等优势在嵌入式领域占据了一席之地。

本章首先带领读者走近嵌入式系统,从整体上把握什么是嵌入式系统以及如何开发嵌入式系统的应用程序。通过本章的学习,读者将会掌握如下内容:

1.1 嵌入式系统概述

正如尼葛洛庞帝在2001年预言的一样,如今,嵌入式系统已成为最为热门的领域之一。从市场观点来看,PC已经从高速增长时期进入平稳发展时期,其年增长率由20世纪90年代中期的35%逐年下降,单纯由PC机带领电子产业蒸蒸日上的时代已经成为历史。为此,美国Business Week杂志提出了“后PC时代”概念,即嵌入式系统所带领的时代。

进入21世纪以来,嵌入式系统已经广泛地渗透到科学研究、工程设计、军事技术、各类产业以及人们日常生活的方方面面中。随着国内外各种嵌入式产品的进一步开发和推广,嵌入式技术将越来越与人们的生活紧密结合。

图1.1所示为人们日常生活中常见的嵌入式产品。

1.1.1 嵌入式系统的发展史

本节从现代计算机发展历史的角度来讲解嵌入式系统的由来,从而使读者能够更加深刻地理解嵌入式的定义、特点以及与通用计算机的区别等。

1.始于微型机时代的嵌入式应用

电子计算机诞生于1946年,在其后漫长的历史进程中,计算机始终是供养在特殊的机房中、实现数值计算的大型昂贵设备。直到20世纪70年代微处理器出现后,计算机发生了历史性的变革。以微处理器为核心的微型计算机凭借其体积小、价格低、可靠性高的优势,迅速走出机房。

微型机表现出的智能化特性引起了控制专业人士的关注,他们将微型机嵌入到一个对象体系中,实现了对象体系的智能化控制。例如,将微型计算机经电气加固、机械加固,并配置各种外围接口电路,安装到大型舰船中构成自动驾驶仪或轮机状态监测系统。

这样一来,此类计算机便失去了原来的形态和通用的计算机功能。为了区别于原有的通用计算机系统,把嵌入到对象体系中、实现对象体系智能化控制的计算机称做嵌入式计算机系统。因此,嵌入式系统诞生于微型机时代,嵌入式系统的本质是将一个计算机嵌入到一个对象体系中去,这是理解嵌入式系统的基本出发点。

2.现代计算机技术的两大分支

由于嵌入式计算机系统要嵌入到对象体系中,实现的是对象的智能化控制,因此,它有着与通用计算机系统完全不同的技术要求与技术发展方向。通用计算机系统的技术要求是高速、海量的数值计算,其技术发展方向是总线速度的无限提升、存储容量的无限扩大;而嵌入式计算机系统的技术要求则是智能化控制,技术发展方向是与对象系统密切相关的嵌入性能、控制能力与控制的可靠性不断提高。

在早期,人们可以勉强地将通用计算机系统进行改装,在大型设备中实现嵌入式应用。然而,对于众多的对象系统(如家用电器、仪器仪表、工控单元)中无法嵌入通用计算机系统,而且嵌入式系统与通用计算机系统的技术发展方向完全不同,因此,必须独立地发展通用计算机系统与嵌入式计算机系统,这就形成了现代计算机技术发展的两大分支。

如果说微型机的出现使计算机进入到现代计算机发展阶段,那么嵌入式计算机系统的诞生则标志了计算机进入了通用计算机系统与嵌入式计算机系统两大分支并行发展的时代,从而使计算机行业进入了20世纪末的高速发展时期。

3.两大分支发展的里程碑事件

通用计算机系统与嵌入式计算机系统的专业化分工发展,使20世纪末、21世纪初,计算机技术飞速发展。计算机专业领域集中精力发展通用计算机系统的软、硬件技术,不必兼顾嵌入式应用要求,通用微处理器迅速从286、386、486发展到奔腾系列;操作系统则迅速扩张计算机基于高速海量数据的文件处理能力,使通用计算机系统进入更加完善的阶段。

嵌入式计算机系统则走上了一条完全不同的道路,这条独立发展的道路就是单芯片化道路。它动员了传统电子系统领域的厂家与专业人士,承担起发展与普及嵌入式系统的历史任务,迅速从传统电子系统发展到智能化的现代电子系统时代。

因此,现代计算机技术发展的两大分支的里程碑意义在于:它不仅形成了计算机发展的专业化分工,而且将发展计算机技术的任务扩展到传统的电子系统领域,使计算机成为进入人类社会全面智能化时代的有力工具。

4.互联网的发展繁荣了嵌入式系统的发展

嵌入式系统的发展经历了以单芯片为核心的可编程控制器形式的第一代嵌入式系统、以嵌入式CPU为基础和简单操作系统为核心的第二代嵌入式系统、以嵌入式操作系统为标志的第三代嵌入式系统以及今天的以Internet为标志的第四代嵌入式系统。

1.1.2 嵌入式系统的定义与特点

1.什么是嵌入式系统

按照电器工程协会的定义,嵌入式系统是用来控制或者监视机器、装置、工厂等大规模系统的设备。这个定义主要是从嵌入式系统的用途方面来进行定义的,可以看到,单个嵌入式系统的功能较为单一,是专为某一具体的用途而设定的。这与通用计算机功能的“大而全”形成了鲜明的对比。

嵌入式系统更加常用的定义为:嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

它主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部分组成。它具有“嵌入性”、“专用性”和“计算机系统”3个基本要素。

这个定义较为具体地指明了嵌入式系统的3大基本要素。

2.嵌入式系统的步骤

“嵌入性”是指它是嵌入到对象体系中的专用计算机系统,比如,人们常用的手机就是一个具体的对象,而将专用计算机系统嵌入到手机这个对象后就形成了嵌入式系统。

“专用性”是指每一个嵌入式系统都是特定的应用,比如,手机就是专为人们的通讯服务的,自动售货机就是专为售货而用的。

“计算机系统”则强调了它是一个完整的计算机体系结构,它包括嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件4大部分,缺一不可。

可以说,“嵌入性”是它的特征,“专用性”是它的灵魂,而“计算机系统”则是它的实质。

1.1.3 嵌入式系统的特点

通过以上对嵌入式系统的发展历史以及嵌入式系统定义的讲解,读者可以很清楚地看到嵌入式系统有以下特点。

1.嵌入式系统通常是面向特定应用的

嵌入式微处理器与通用型处理器的最大不同就是嵌入式微处理器大多工作在为特定用户群设计的系统中。嵌入式微处理器通常都具有低功耗、体积小、集成度高等特点,能够把通用处理器中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,大大增强移动能力,跟网络的耦合越来越紧密。

2.嵌入式系统是各种技术、各个行业融合的产物

嵌入式可以应用在人们生活的各个领域,它是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。

3.嵌入式系统的软硬件设计高效、可裁减

嵌入式系统对成本、体积等方面有严格的要求,要求嵌入式工程师对硬件和软件进行高效地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中更具有竞争力。

4.嵌入式系统软件固化

为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机中,而不是存储于磁盘等载体中。

5.购买产品与技术开发相结合的实现方式

通用处理器系统多数是通过软件工程的方法,根据用户的需求进行软件开发的,用户拥有完整的技术资料,可以根据应用的需要进行相应的维护与升级。而嵌入式系统一般采用购买现成产品与自行独立开发相结合的方式来构建的。

表1.1所示为嵌入式系统和通用计算机的主要区别。

时间: 2024-09-01 08:22:23

《嵌入式 Linux C 语言应用程序设计(修订版)》——第 1 章 嵌入式系统基础知识 1.1 嵌入式系统概述的相关文章

《嵌入式 Linux C 语言应用程序设计(修订版)》——1.5 嵌入式系统开发概述

1.5 嵌入式系统开发概述 嵌入式 Linux C 语言应用程序设计(修订版) 1.5.1 嵌入式系统开发流程 嵌入式系统的开发流程与通用系统的开发流程有较大的区别,其设计流程如图1.15所示. 下面对系统各个模块进行简要说明. 系统需求分析:根据需求,确定设计任务和设计目标,制定设计说明书. 体系结构设计:描述系统如何实现所述的功能需求,包括对硬件.软件和执行装置的功能划分以及系统的软件.硬件选型等. 硬件/软件协同设计:基于体系结构的设计结果,对系统的硬件.软件进行详细设计.一般情况下嵌入式

《嵌入式 Linux C 语言应用程序设计(修订版)》一1.5 嵌入式系统开发概述

1.5 嵌入式系统开发概述 嵌入式 Linux C 语言应用程序设计(修订版) 1.5.1 嵌入式系统开发流程 嵌入式系统的开发流程与通用系统的开发流程有较大的区别,其设计流程如图1.15所示. 图1.15 嵌入式系统的开发流程 下面对系统各个模块进行简要说明. 系统需求分析:根据需求,确定设计任务和设计目标,制定设计说明书. 体系结构设计:描述系统如何实现所述的功能需求,包括对硬件.软件和执行装置的功能划分以及系统的软件.硬件选型等. 硬件/软件协同设计:基于体系结构的设计结果,对系统的硬件.

《嵌入式 Linux C 语言应用程序设计(修订版)》一1.2 嵌入式系统的组成

1.2 嵌入式系统的组成 嵌入式 Linux C 语言应用程序设计(修订版) 嵌入式系统主要由嵌入式微处理器.外围硬件设备.嵌入式操作系统以及用户应用软件等部分组成,其体系结构如图1.2所示. 图1.2 嵌入式系统体系结构图 从该图中可以清楚地看到嵌入式系统体系结构上下层之间的关系. 其中,硬件平台包括嵌入式处理器和外围设备,它们位于嵌入式系统结构中的最底层:嵌入式操作系统与通用操作系统的功能类似,为用户屏蔽硬件底层的具体细节,提供一个透明的操作空间:而应用软件则是位于嵌入式操作系统之上的,当然

《嵌入式 Linux C 语言应用程序设计(修订版)》——2.1 嵌入式Linux下C语言概述

2.1 嵌入式Linux下C语言概述 嵌入式 Linux C 语言应用程序设计(修订版) 读者在第一章中已经了解了嵌入式开发的基本流程,在嵌入式系统中应用程序的主体是在宿主机中开发完成的,就嵌入式Linux而言,此过程则一般是在安装有Linux的宿主机中完成. 在本章中介绍的实际是嵌入式Linux下C语言的开发工具,用户在开发时往往是在Linux宿主机中对程序进行调试,然后再进行交叉编译的. 2.1.1 C语言简史 C语言于20世纪70年代诞生于美国的贝尔实验室.在此之前,人们编写系统软件主要是

《嵌入式 Linux C 语言应用程序设计(修订版)》一本章小结

本章小结 嵌入式 Linux C 语言应用程序设计(修订版)本 章 小 结 熟练使用开发工具是进行嵌入式Linux C语言开发的第一步.本章详细介绍了嵌入式Linux C语言开发常见的编辑器vi.编译器GCC.调试器GDB.工程管理器make和综合编辑器Emacs. 对于这些工具的使用方法,读者一定要通过实际动手操作来熟练掌握.本章在每个工具的讲解中都有一个完整的实例,希望读者能够完整操作这些实例. 动 手 练 练 1.在vi中编辑如下代码(命名为test.c),并自行编写Makefile运行该

《嵌入式 Linux C 语言应用程序设计(修订版)》一1.3 ARM处理器平台介绍

1.3 ARM处理器平台介绍 嵌入式 Linux C 语言应用程序设计(修订版)1.3.1 ARM处理器简介ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是一类微处理器的通称,还可以认为是一种技术的名字. 1991年ARM公司成立于英国剑桥(公司原貌如图1.5所示),主要出售芯片设计技术的授权.目前,采用ARM技术知识产权(IP)核的微处理器,即人们通常所说的ARM微处理器,已经遍及工业控制.消费类电子产品.通信系统.网络系统.无线系统等各类产品市

《嵌入式 Linux C 语言应用程序设计(修订版)》一2.3 嵌入式Linux编译器GCC的使用

2.3 嵌入式Linux编译器GCC的使用 嵌入式 Linux C 语言应用程序设计(修订版) 2.3.1 GCC概述 作为自由软件的旗舰项目,Richard Stallman在十多年前刚开始写作GCC的时候,还只是仅仅把它当作一个C程序语言的编译器,GCC的意思也只是GNU C Compiler而已. 经过了这么多年的发展,GCC已经不仅仅能支持C语言,它现在还支持Ada语言.C++语言.Java语言.Objective C语言.PASCAL语言.COBOL语言,并支持函数式编程和逻辑编程的M

《嵌入式 Linux C 语言应用程序设计(修订版)》——1.1 嵌入式系统概述

1.1 嵌入式系统概述 嵌入式 Linux C 语言应用程序设计(修订版)正如尼葛洛庞帝在2001年预言的一样,如今,嵌入式系统已成为最为热门的领域之一.从市场观点来看,PC已经从高速增长时期进入平稳发展时期,其年增长率由20世纪90年代中期的35%逐年下降,单纯由PC机带领电子产业蒸蒸日上的时代已经成为历史.为此,美国Business Week杂志提出了"后PC时代"概念,即嵌入式系统所带领的时代. 进入21世纪以来,嵌入式系统已经广泛地渗透到科学研究.工程设计.军事技术.各类产业以

《嵌入式 Linux C 语言应用程序设计(修订版)》一2.4 嵌入式Linux调试器GDB的使用

2.4 嵌入式Linux调试器GDB的使用 嵌入式 Linux C 语言应用程序设计(修订版)在程序编译通过生成可执行文件之后,就进入了程序的调试环节.调试一直来是程序开发中的重中之重,如何使程序员能够迅速找到错误的原因是一款调试器的目标. GDB是GNU开源组织发布的一个强大的Linux下的程序调试工具,它是一种强大的命令行调试工具. 一个出色的调试器需要有以下几项功能. 能够运行程序,设置所有能影响程序运行的参数.能够让程序让指定的条件下停止.能够在程序停止时检查所有参数的情况.能够根据指定

《嵌入式 Linux C 语言应用程序设计(修订版)》一第1章 嵌入式系统基础知识1.1 嵌入式系统概述

第 1 章 嵌入式系统基础知识 嵌入式 Linux C 语言应用程序设计(修订版)本章目标 嵌入式系统产业作为朝阳产业正在蓬勃发展,优秀的操作系统Linux也凭借其高效.开放等优势在嵌入式领域占据了一席之地. 本章首先带领读者走近嵌入式系统,从整体上把握什么是嵌入式系统以及如何开发嵌入式系统的应用程序.通过本章的学习,读者将会掌握如下内容: anniu嵌入式系统的基本概念 anniu嵌入式系统的特点以及与PC的区别 anniu嵌入式系统的现状与发展前景 anniu嵌入式系统的硬件架构 anniu