《 嵌入式系统设计与实践》一一第1章 导论 1.0

**第1章
导论**
不同的人对嵌入式系统有不同的理解。对于从事服务器开发的人来说,在手机上开发的应用程序就是一个嵌入式系统。对于为8位微处理器写过程序的人来说,任何运行在操作系统上的应用程序都不是嵌入式的。我要告诉非技术人员的是,嵌入式系统就像微波炉或者汽车,虽然运行软件但不是计算机(大多数人认为计算机是通用计算设备)。以下是对嵌入式系统给出的一个没有太多技术争议的定义:
嵌入式系统是为了特定应用而专门构建的计算机系统。
因为嵌入式系统要完成的任务比通用计算机系统窄很多,所以对于完成与手头任务不相关的事情提供较少的支持。硬件通常也有很多约束。比如,为了节省电池电量,CPU运行得更慢;为了便于制造,使用更少的内存;处理器通常只能具有特定的速度,或者只支持一部分外设。
在嵌入式系统中硬件并不是唯一受限制的部分。在某些系统中,软件的行为必须是确定的(每次必须以同样的方式运行)或者是实时的(任何时候对特定的事件快速响应)。有些系统要求软件能容错,当有错误发生时能以优雅的方式降级运行。例如,一个不能允许软件失效或者硬件损坏的系统(比如卫星或者鲸鱼的追踪标志系统)。另一些系统要求在第一个失效症状出现的时候,软件立刻停止操作,通常这时候软件会提供明确的错误信息(比如,心脏监护仪不应该悄无声息地失效)。

时间: 2024-09-07 08:36:26

《 嵌入式系统设计与实践》一一第1章 导论 1.0的相关文章

《 嵌入式系统设计与实践》一一导读

前言 我热爱嵌入式系统.当我第一次让马达转动时,我着迷了.我很快从单纯软件开发进入到我可以触摸真实物体的一个领域.在我离开软件开发的时候,设计模式注1开创性的工作已经完成.我和我的团队通读了这本书,讨论这些模式以及可以在哪儿应用这些模式.随着我进一步深入研究嵌入式系统,我发现不能处理C++继承的编译器,在处理器极其有限的内存中去实现模式,以及一系列新的问题使设计模式看起来难以应用.但是我从来没有忘记在工程化方法中存在着模式.通过学习识别模式,我们可以反复地使用这些健壮的解决方案.本书大部分内容着

《 嵌入式系统设计与实践》一一第3章 检视硬件

**第3章 检视硬件**嵌入式系统的设计可能是一件艰巨的任务.大多数软件工程师需要电气工程方面的速成课程,同时大多数电气工程师需要好的软件设计方面的速成课程.与来自不同学科的成员密切配合,可以让嵌入式系统的开发工作容易很多.比如,我有些非常好的朋友就是电气工程师.如果没有从头到尾地经历过一个包括硬件的产品开发周期,那么讨论关于其中的角色和职责可能就有点儿难.但是,我会从一个项目一般的流程开始,然后给出一些关于所需技能的具体建议,以帮助大家在团队中承担起重任,这些技能包括:阅读数据表(datash

《 嵌入式系统设计与实践》一一第2章 创建系统架构

**第2章 创建系统架构**即使是小型嵌入式系统也有很多细节部分,在哪里可以应用模式?这有一定的困难.这需要我们对整个系统有个比较好的了解,如哪些部分有直接的解决方案,哪些部分包含隐藏的依赖关系等.优秀的设计通常源于一个好的设计,并对其进行优化,理想情况下,设计是在开始着手实现之前进行的.系统架构图就是一个很好的理解系统的途径,也是软件设计的起点.从零开始一个项目是比较难的.因为刚开始的时侯很难把一个产品的功能定义清楚,所以可能需要经过好几轮的精心推敲之后才能确定一些思路.当我们在白板上写下产品

《 嵌入式系统设计与实践》一一2.2 从框图到架构

2.2 从框图到架构 至此,我们已经有了三种不同的架构设计图,那么下一步怎么做呢?也许会认为开始的时候有些代码没有考虑到,又或者我们会进一步去找出这些模块之间是如何交互的.在开始讨论这些交互(接口)之前,花一些时间讨论一件事情是值得的,那就是:哪些部分将发生变化?在目前这个阶段,所有的事情都是实验性的,因此系统的任何一个部分都可能发生变化. 给出了产品需求规格后,我们可能对系统要实现什么功能比较有信心.在我们的例子里,不管最终要做什么,都需要一个显示器,将位图数据发送给它最好的方式就是闪存.很多

《 嵌入式系统设计与实践》一一2.4 延伸阅读

2.4 延伸阅读 本章中讨论了众多设计模式中的一些模式.本书其他部分也会讨论一些设计模式,但是本书是关于嵌入式系统的,而不是关于设计模式的.试着从以下这些资源中选择一个进行进一步研究,以便更多地了解标准的软件设计模式. Gamma, Erich, Richard Helm, Ralph Johnson和 John Vlissides. 1995. 设计模式: 可复用面向对象软件的基础.Boston: Addison-Wesley. 这是最早的关于设计模式的著作.这本书采用了C++作为参考语言.

《 嵌入式系统设计与实践》一一3.5 调试工具箱(和灭火器)

3.5 调试工具箱(和灭火器) 到目前为止,我们对数据表.用户手册.原理图的所讨论都停留在纸上(或电子文件上).让我们在硬件上实践一下吧.等一等,在动手之前,请注意触摸硬件会让它遭受电击并将它损坏(特别是当你刚脱下羊毛外套的时候).3.5.1 保管好电路板 向硬件工程师要一些工具,用以保证电路板的安全.注意电路板应该放在哪儿.在需要移动时,始终将它放在存放电路板的那个袋子里.抗静电垫子很便宜,这也迫使人们不得不在办公桌上为硬件分配一个空间(即使不使用防静电手腕带,防静电垫子仍然是一个较好的改善,

《 嵌入式系统设计与实践》一一3.6 测试硬件(和软件)

3.6 测试硬件(和软件) 虽然我强烈建议准备好工具箱.数字万用表和示波器,但是,如果大家没有准备好独自拥有这些,那么将这些留给硬件工程师也在情理之中.作为一个软件工程师,更重要的是将用于测试硬件的软件尽可能构建得有利于方便调试. 嵌入式系统有3种常见的测试.第一种,在每次系统引导的时候都运行加电自检(POST),即使代码被释放.这个测试验证所有的硬件组件都已经就绪,可以安全地运行系统.加电自检(POST)测试得越多,开机时间就越长,因此需要权衡可能对客户造成的影响.自检完成后,客户就可以使用系

《 嵌入式系统设计与实践》一一3.4 阅读原理图

3.4 阅读原理图 如果你是传统软件世界的开发人员,那么原理图看起来就像是一个充斥着象形文字的视力表,散布着奇怪的方框和复杂的连线.就像数据表一样,知道从哪里着手往往是件令人望而生畏的事情.对于多页的原理图,从第一页开始可能是有风险的,因为很多电气工程师把他们的电源处理硬件放在第一页,而这部分对于软件工程师来说,不是一定要去关注的.图3-9展示了一个原理图的一页片段. 有些原理图中会带有文本块(通常位于图的角落),这些文本是注释,需要仔细阅读,特别是当文本块的标题是"处理器I/O"或者

《 嵌入式系统设计与实践》一一3.7 处理错误

3.7 处理错误 代码的生命周期让我震惊.因为有时侯好像我们总在以不同的方式重写同样的旧代码,有一天我们可能会发现自己在10年前入门阶段写的一段代码正在被一个财富500强公司使用.既然代码工作的如此之好,为什么还要修复其中那些隐藏很深的问题呢? 在某些时候,代码将失效.这一点可能让人会感到可怕.一个错误的发生,要么是由于代码本身,要么是由于环境中一个意想不到的情况.有两种方法来处理错误.首先,该系统可以进入优雅降级的状态,在这个状态中软件会尽可能做到最好.或者,系统可能会优雅地立即失效.长期运行