基本信息
- 原书名:Fundamentals of Embedded Software with the ARM Cortex-M3, Second Edition
- 原出版社: Prentice Hall
- 作者: (美)Daniel W. Lewis圣克拉拉大学
- 译者: 陈文智 胡威
- 丛书名: 计算机科学丛书
- 出版社:机械工业出版社
- ISBN:9787111441762
- 上架时间:2014-5-26
- 出版日期:2014 年1月
- 开本:16开
- 页码:189
- 版次:1-1
- 所属分类:计算机 > 计算机组织与体系结构 > 嵌入式计算机
内容简介
作译者
在1975年进入圣克拉拉大学前,Lewis曾在通用电气航空部门工作六年,为最早的三重冗余自动着陆系统的商用飞机之一设计了容错时序系统。他在一些海湾地区公司(包括Singer-Link公司)做过顾问,他设计的新算法和相应的超大规模集成电路模块阵列成为实时计算机图形系统新生产线的基础。
目录
出版者的话
译者序
献辞
前言
第1章 导论 1
1.1 什么是嵌入式系统 1
1.2 嵌入式软件设计的目标有什么独特性 3
1.3 什么是实时系统 4
1.4 什么是多线程 4
1.5 嵌入式处理器到底有多强大 4
1.6 如何使用编程语言 5
1.7 构建嵌入式应用有什么不同之处 6
1.8 典型的嵌入式程序有多大 7
习题 7
第2章 数的表示 9
2.1 固定精度二进制数 9
2.2 按位计数制 10
2.2.1 二进制到十进制的转换 11
2.2.2 十进制到二进制的转换 11
译者序
Fundamentals of Embedded Software with the ARM Cortex-M3, 2E
嵌入式系统是面向应用而进行定制的计算系统,它将多领域技术与具体行业需求结合在一起。经过多年的发展,其应用领域已经非常广泛,包括交通、能源、工业控制等,目前在汽车、家电和移动终端等领域的嵌入式创新应用不断涌现。
在嵌入式系统发展迅速、应用范围不断扩大的背景下,我们迫切需要从嵌入式硬件与软件之间的关系出发,建立嵌入式软件设计与开发的系统性框架。而作为国内较早开设嵌入式系统课程的高校之一,浙江大学在教学过程中发现,嵌入式系统软硬件结合相对紧密,如果要学习设计和开发嵌入式软件,就必须对嵌入式硬件有一定程度的了解。因此,需要在嵌入式软件开发的课程中将具体的硬件知识与嵌入式软件知识结合起来,从而让学生能够真正深入了解嵌入式软件开发的本质。
在《Fundamentals of Embedded Software with the ARM Cortex-M3》一书的第2版出版后,我们应机械工业出版社的邀请,开始进行翻译工作。在阅读完本书后,发现书中内容正是学习和了解嵌入式软件开发所需要的。本书作者选择了典型的嵌入式处理器体系结构作为嵌入式软件开发的基础,以嵌入式软件开发为目标,将软硬件系统很好地融合起来,通过循序渐进的方式,将嵌入式软件开发的本质生动地展现在读者面前。
作者首先以实际生活中可能遇到的嵌入式系统来引入“嵌入式系统”的概念,并针对嵌入式系统做初步的介绍,以嵌入式系统中数的表示方法、算术运算的实现和C语言的基本特征等作为进一步探讨的基础;接下来分别介绍了嵌入式计算系统的构成、数据操作、控制结构和I/O程序设计,逐步深入到嵌入式软件设计与开发的主要内容中去;然后讨论了并发、调度、存储管理和共享存储,对嵌入式系统软件的核心进行剖析;最后探讨了嵌入式系统的软件初始化过程。同时,书中也提供了丰富的习题,可以让学生及时对所学知识进行全面把握和巩固。
本书由浙江大学的陈文智和施青松以及武汉科技大学的胡威共同翻译完成。胡威和施青松对翻译初稿进行了审阅和修订,最终由陈文智统稿、定稿。
在进行本书的翻译时,我们力求准确无误地表达出原文的意思,尽可能使文字流畅,易于理解。但是受译者水平和时间所限,不免有疏漏和不足之处,恳请读者不吝指正。
在此非常真诚地感谢机械工业出版社的王春华和其他编辑,是她们细致的工作使得本书的翻译和出版顺利完成。
译者
2013年8月12日于求是园
前言
嵌入式系统为学生提供了一个令他们兴奋的机会来表现他们的创新能力。学生难道没有梦想设计下一个新的小工具,能够发挥他们的想象力吗?作为教育者,我们的挑战是利用这种兴奋,释放这些年轻人的能量,激发他们掌握这个主题的兴趣。
本版中的更新内容
实际上这是一个几乎完全重写的版本,具有以下几个显著的变化:
1)取代了之前介绍的Intel IA32处理器,而涵盖了ARM Cortex-M3 v7处理器的体系结构和指令集。之所以选择32位的ARM处理器,是因为:2004年到2010年间设计的75%的嵌入式系统采用了32位处理器;ARM处理器的使用率快速增长,从2007年占所有嵌入式应用的19%增长到2010年的超过35%;ARM Cortex-M3 是为嵌入式实时应用专门设计的。
2)涵盖了ARM Cortex-M3处理器能够很好地适应于嵌入式应用的主要特征,包括能够避免排空流水线的条件执行,中断“尾链”,中断的“迟到处理”以及用于内存和I/O中单个位寻址的“位段”。
3)涵盖了ARM的过程调用标准以及针对函数参数、返回值和临时变量的寄存器的正确选择。
4)增加了新的章“实现算术运算”(第3章),对汇编语言编程和I/O进行了重新组织和扩展,从原来的三章增加为四章。
5)扩展了对二进制加法和减法的介绍,为以下知识点增加了新的内容:使用移位、加法和减法的方法作为常量乘法的替代方法,使用倒数乘法作为常量除法的替代方法,以及定点实数乘法的完整示例。
6)更新了C语言有关C99标准的内容。
7)大大扩充了第1~12章中每章结尾处的习题,并提供了部分习题的答案。
8)教学辅助网站上包括14个新的实验程序作业,这些作业使用德州仪器的EKI-LM3S811评估板(包括LM3S811评估板)、Stellaris外设驱动程序库和IAR嵌入式测试程序集成开发环境的启动版本(Kickstart Edition)。LM3S811评估板提供了可编程定时器、指轮驱动分压计、A/D转换器、图形显示器、用户和复位按钮、用户LED、并行端口、串行UART端口、USB端口和JTAG连接器。
9)使用开源的FreeRTOS实时内核来开发多线程实验作业,以探索调度、处理器利用率、线程饥饿、非绑定的优先级反转、死锁、互斥、信号量和队列。
10)教学辅助网站上提供了完整的方案来组装简易的低端开发板,这个开发板用于最后的四个实验作业,从而开发基于反馈控制的小型直流电机的多线程程序。
目标
本书的最终目标是为理解嵌入式软件的多线程风格编程和高可靠性需求奠定良好的基础。为此,确定如下的具体目标:
1)理解在机器级别数据如何表示,并领会不同表示方法的效果及其限制。
2)掌握在嵌入式系统中最常用的语言特定的功能,比如位操作和变量访问。
3)学习程序员视角的处理器体系结构,以及为何有时在汇编层面进行编程是必要的或适当的。
4)学习I/O编程的不同风格,最终了解如何利用事件驱动的方法将数据处理分离成多个相互独立的计算线程。
序言
Fundamentals of Embedded Software with the ARM Cortex-M3, 2E
文艺复兴以降,源远流长的科学精神和逐步形成的学术规范,使西方国家在自然科学的各个领域取得了垄断性的优势;也正是这样的传统,使美国在信息技术发展的六十多年间名家辈出、独领风骚。在商业化的进程中,美国的产业界与教育界越来越紧密地结合,计算机学科中的许多泰山北斗同时身处科研和教学的最前线,由此而产生的经典科学著作,不仅擘划了研究的范畴,还揭示了学术的源变,既遵循学术规范,又自有学者个性,其价值并不会因年月的流逝而减退。
近年,在全球信息化大潮的推动下,我国的计算机产业发展迅猛,对专业人才的需求日益迫切。这对计算机教育界和出版界都既是机遇,也是挑战;而专业教材的建设在教育战略上显得举足轻重。在我国信息技术发展时间较短的现状下,美国等发达国家在其计算机科学发展的几十年间积淀和发展的经典教材仍有许多值得借鉴之处。因此,引进一批国外优秀计算机教材将对我国计算机教育事业的发展起到积极的推动作用,也是与世界接轨、建设真正的世界一流大学的必由之路。
机械工业出版社华章公司较早意识到“出版要为教育服务”。自1998 年开始,我们就将工作重点放在了遴选、移译国外优秀教材上。经过多年的不懈努力,我们与Pearson,McGraw-Hill,Elsevier,MIT,John Wiley & Sons,Cengage 等世界著名出版公司建立了良好的合作关系, 从他们现有的数百种教材中甄选出Andrew S. Tanenbaum,Bjarne Stroustrup,Brain W. Kernighan,Dennis Ritchie,Jim Gray,Afred V. Aho,John E. Hopcroft,Jeffrey D. Ullman,Abraham Silberschatz,William Stallings,Donald E. Knuth,John L. Hennessy,Larry L. Peterson 等大师名家的一批经典作品,以“计算机科学丛书”为总称出版,供读者学习、研究及珍藏。大理石纹理的封面,也正体现了这套丛书的品位和格调。
“计算机科学丛书”的出版工作得到了国内外学者的鼎力襄助,国内的专家不仅提供了中肯的选题指导,还不辞劳苦地担任了翻译和审校的工作;而原书的作者也相当关注其作品在中国的传播,有的还专程为其书的中译本作序。迄今,“计算机科学丛书”已经出版了近两百个品种,这些书籍在读者中树立了良好的口碑,并被许多高校采用为正式教材和参考书籍。其影印版“经典原版书库”作为姊妹篇也被越来越多实施双语教学的学校所采用。
权威的作者、经典的教材、一流的译者、严格的审校、精细的编辑,这些因素使我们的图书有了质量的保证。随着计算机科学与技术专业学科建设的不断完善和教材改革的逐渐深化,教育界对国外计算机教材的需求和应用都将步入一个新的阶段,我们的目标是尽善尽美,而反馈的意见正是我们达到这一终极目标的重要帮助。华章公司欢迎老师和读者对我们的工作提出建议或给予指正,我们的联系方法如下:
华章网站:www.hzbook.com
电子邮件:hzjsj@hzbook.com
联系电话:(010)88379604
联系地址:北京市西城区百万庄南街1号
邮政编码:100037
书摘
Fundamentals of Embedded Software with the ARM Cortex-M3, 2E
导论
1.1什么是嵌入式系统
嵌入式系统是在装置中整合了微处理器的电子设备。使用微处理器的主要目的是简化系统设计,提供高度的灵活性。设备中具有一个微处理器意味着去除bug、做出修改或者增加新的特征只需要重写控制设备的软件。然而,与PC不同,嵌入式系统可能没有磁盘,因此软件常存储在只读存储器(ROM)芯片中,这意味着修改软件需要替换ROM或者对其进行“重编程”。
如表1-1所示,嵌入式系统广泛应用于不同领域。起初,嵌入式系统只是用于昂贵的工业控制应用,但是随着技术发展降低了专用处理器的价格,嵌入式系统开始出现在中等昂贵的应用当中,例如汽车、通信和办公设备以及电视。今天的嵌入式系统价格相当低廉,它们几乎应用在我们生活中的每个电子产品之中。例如,在NASA 2003的火星探测车上(如图1-1所示),使用了嵌入式系统来作为整个探测车的一部分。在Vitality的GlowCap(如图1.2所示)中使用的超小ATMEL 8位超低功耗AVR处理器,帮助人们记得按时服药。当药瓶被打开时,它能够感应到,并将信息无线传输给Vitality服务器,触发LED闪动并播放铃声。
图1.1.NASA 2003火星探测车,使用了BAE系统,该系统基于RAD6000 32位RISC处理器和风河系统的VxWorks嵌入式实时操作系统
照片由NASA/JPL/康奈尔大学(Cornell University)提供
虽然一个典型的家庭仅仅拥有1台或者2台个人计算机,但在其居所中、汽车上会发现大量的嵌入式处理器,个人物品中有更多的嵌入式处理器。在多数情况下,我们可能甚至没有意识到计算机的存在,或者没有认识到嵌入式系统是多么普遍。
最令人吃惊的恐怕是嵌入式处理器几乎占全世界微处理器数量的100%。对应于用于桌面计算机的每个处理器,都有超过100个为嵌入式系统而生产的微处理器。如果考虑到1999年平均每个北美中产家庭中都能找到40~50个嵌入式微处理器,那么这就一点也不令人感到意外了。可以在如下的产品中找到它们:钟控收音机、立体声音响、电视、VCR、DVD播放机、DVR、游戏机、远程控制、洗衣机、烘干机、洗碗机、微波炉、冰箱、咖啡机、温度调节器、草坪喷灌控制器、车库门遥控开关、相机、无线和移动电话、电话应答机、传真机、寻呼机、个人数字助理(PDA)、MP3播放器、手表甚至牙刷(见图1.3)。
表1.1嵌入式系统实例
类型 描述
航空 导航系统、自动着陆系统、飞行高度控制、引擎控制和空间探索
汽车 燃油喷射控制、乘客环境控制、防抱死系统、空气袋控制和GPS映射
游戏机 Nintendo DS、Nintendo Wii、微软Xbox 360和索尼 Playstation 3
通信 卫星,网络路由器、交换机和集线器
计算机外围设备 打印机、扫描仪、键盘、显示器、调制解调器、硬磁盘和CD-ROM
家居 洗碗机、微波炉、DVD播放器、电视、立体声音响、火警/安全警报系统、草坪喷灌控制器、温度调节器、相机、钟控收音机和电话应答机
工业 电梯控制、监测系统和机器人
仪器仪表 数据收集、示波器、信号发生器、信号分析器和电源
【插图】
