嵌入式软件设计之思想与方法

当前位置:首页 > 计算机网络 > 计算机体系结构 > 嵌入式软件设计之思想与方法

出版社:北京航空航天大学出版社
出版日期:2009-1
ISBN:9787811244205
作者:张邦术
页数:270页

章节摘录

插图:第一篇 基础方法篇本篇就笔者的理解来讨论一些嵌入式软件设计所必备的基础技能。如果读者急于了解嵌入式系统软件设计的方法,可以直接跳到第二篇“驱动模型篇”。借用一些老套的话——“万丈高楼从地起”“磨刀不误砍柴功”,打好扎实的基础是非常重要的。在我看来,对嵌入式软件系统的基本要求是高效和稳定,它要求软件开发人员设计出的程序逻辑严密,层次清楚,效率优化,品质高精;与此同时,软件需要与硬件系统打交道,需要处理复杂的应用问题,涉及到的专业面广泛且深入,由此软件开发人员还需要掌握很多复杂的专业知识。所以,基础与方法对于嵌入式软件的设计至关重要。本书虽然不求将各种专业知识与技能讲解得全面透彻,但希望笔者多年积累的一些点滴经验,能够给读者带来开指路的功效。1.心理准备 如上所述,嵌入式软件的设计是一项极其艰辛复杂的程序设计工作,它需要有丰富、扎实的专业知识,还需要有艰苦卓绝、锲而不舍、敢于拼搏和敢于挑战的精神。在最开始着手研究嵌入式软件开发时,就需要树立脚踏实地的学习和工作作风,在设计工作中要实事求是,不能臆想,不能武断,不能自大。另外,也要去除心目中的畏难情绪和神秘观念。只要认真学习、深入钻研,就可以设计出性能优秀的嵌入式产品;只要思路清晰、方法正确,也可以创造奇迹。嵌入式软件系统既是软件设计,又是艺术设计。它要求不但要实现产品的功能,还要设计出友好、易用、能够一眼就吸引住用户眼球的界面。所以嵌入式软件不但要求内部结构精细,还要求外部界面设计精细,每一个细微角落都要体现出设计者的独具匠心! 诚然,嵌入式软件设计也是软件设计人员人生的一大乐趣。当一个产品从你手中诞生时;当一个用户津津乐道地使用一个PS2玩一个游戏,或者使用一个手持设备观看一部惊险电影时;当一名工作人员使用办公室的大屏幕进行远程监控,或远程操作一个复杂的机器设备时;如果这些软件系统都是出自于自己的作品,那么这些岂不是为之振奋的事情?当大家有了这些心理准备,有了这些远景的乐趣,就会为自己的学习产生巨大潜能和动力。兴趣是攻克难关的先导,希望读者带着强烈的兴趣阅读完本书!

前言

硬件技术的飞速发展,使硬件的性能显著提高,并且成本极速降低。微处理器已经深入到人们生活和生产的各个领域,各种产品和设备都逐渐增加了复杂的智能化功能,使得消费类电子产品、个人媒体产品、个人数字助理以及工业控制等领域得以快速发展。随着这些产品的高度智能化和复杂化,嵌入式软件的需求得到迅猛发展。从单片机的控制软件,到功能强大的多任务实时操作系统平台,产品的智能化程度越来越高,易用性越来越好,嵌入式软件及其应用领域越来越广泛,从而对嵌入式软件的要求也变得越来越复杂。本书旨在为嵌入式软件开发爱好者提供一个入门的引导。面对复杂的嵌入式系统软件,作为一位初学者,如何清楚把握嵌入式软件的设计对象与目标,如何寻找一个很好的切入点,尽快参与到嵌入式软件的设计当中,对于这些问题,希望通过本书的讲解,能够为读者提供一些有益的启示。笔者多年来一直在嵌入式软件领域从事实际项目的开发工作,出于对软件设计的执著与偏爱,笔者把这些年从事嵌入式软件设计的经验点滴整理出来,与更多的嵌入式软件设计爱好者分享。目前,尽管介绍嵌入式软件设计方面的书籍较多,但全面、系统地讨论如何从头开始设计嵌入式系统软件的书籍却很少。很多嵌入式软件设计方面的书籍都是一些诸如百科全书的参考手册,由于体系过于庞大,或讨论过于专业,初学者很难在短时间内把握其中有用的部分,因而更难将庞大体系里各书籍中的精华串到一起,而本书正是这些书籍精华的一种提炼。本书以讲述的方式,深入剖析嵌入式系统软件设计的各个层面,以及设计实践中的各个关键之事,以帮助读者轻松地领会嵌入式软件设计的方法,掌握嵌入式软件的核心架构。书中通过对嵌入式系统的分解,重点讲述嵌入式系统软件的层次结构。通过对目前多个主流系统(VxWorks,Linux,WinCE)内核进行深入浅出的剖析与对比,帮助读者建立起正确的驱动设计模型;通过对不同硬件平台(MIPS,ARM)所开发的板级支持包(BSP)的深入讨论,帮助读者掌握硬件适配层(OAL)设计的核心概念,使读者清楚理解系统环境的上下文,前因后果,从而更好地把握各个软件模块设计的分界与接口,把握设计的对象与目标,在设计中做到心中有数,目标明确,从而更好、更快地解决问题。要想成为一名成功的嵌入式软件程序员,程序的设计能力是首要的技能。如何打好程序设计基础,如何编写工程化的程序,如何在设计中与团队协作开发、在后续开发中有效地升级与维护,如何编写规范的文档等,这些都是工程化软件设计中非常关键的环节,本书花费大量篇幅进行介绍,以帮助读者提高程序设计能力。书中从各种复杂的软件系统中抽象出驱动模型和板级支持包的设计模型;对于硬件基础,也通过模型化的方法讲述了总线的一般概念与作用,抽象出输入/输出设备的模型。通过这些模型化的讲解,便于读者掌握嵌入式软件设计的目标与内容,从而提高软件设计能力。1. 读者对象本书的读者对象为嵌入式程序设计的初学者,本书也可作为大中专学生学习嵌入式软件设计的入门参考。对于那些已从事嵌入式软件设计一段时间,但是在设计实践中感觉力不从心,需要全面掌握嵌入式软件设计内容与目标,掌握一些新的技巧与方法的读者,相信本书将会起到良师益友的作用。本书也可以作为嵌入式软件培训的教材。2. 题材与组织本书共分为四篇,其中第一篇着重讨论作为一名优秀的嵌入式软件设计人员所必备的知识和技能。需要说明的是:限于时间和精力,本书没能全面囊括嵌入式软件设计的所有知识点和技术面,但希望本书能让读者掌握基本的框架,使读者在今后的学习和工作实践中,更好地结合优秀读物和参考资料,不断学习和实践,从而提高自身的软件设计能力和水平。

内容概要

张邦术,1999年毕业于电子科技大学,先后在联想、泰鼎、微开和泰克公司从事近10年嵌入式软件及系统软件的研发工作,在VxWorks,Linux和WinCE系统平台上的开发,以及在音/视频、移动媒体、测试仪器等领域具有丰富的设计经验,在软件团队的组建、培训和项目管理等方面积累了大量经验。

书籍目录

第一篇  基础方法篇  第1章  程序基础    1.1  设计高性能程序的必要性     1.1.1  设计高性能程序的必要性     1.1.2  嵌入式软件的设计范畴     1.1.3  嵌入式软件的分层结构    1.2  嵌入式软件的程序设计要求     1.2.1  代码结果的要求     1.2.2  代码形式的要求    1.3  嵌入式软件开发的基本思路和原则     1.3.1  系统分析,定义接口     1.3.2  函数实现,优化算法     1.3.3  清理代码,补充注释     1.3.4  测试修订,完善文档    1.4  程序实例剖析     1.4.1  正确理解栈     1.4.2  内存泄漏     1.4.3  消除编译依赖     1.4.4  消除潜在隐患     1.4.5  规范实现范例     1.4.6  性能优化    1.5  程序设计其他注意点     1.5.1  谨慎使用“宏”     1.5.2  正确理解预定义宏     1.5.3  避免歧义  第2章  多任务操作系统    2.1  板级支持包    2.2  嵌入式操作系统与实时性     2.2.1  嵌入式操作系统     2.2.2  实时操作系统    2.3  多任务概述     2.3.1  进程、线程与任务     2.3.2  何时需要多任务     2.3.3  任务状态的转换     2.3.4  进程调度与调试算法     2.3.5  任务相关的API    2.4  进程间共享代码与可重入性     2.4.1  共享代码     2.4.2  共享代码可重人性问题     2.4.3  使用私有数据     2.4.4  使用临界区数据    2.5  线程间通信     2.5.1  共享数据结构     2.5.2  互斥     2.5.3  信号量     2.5.4  临界区与信号量的实现实例  第3章  硬件基础    3.1  ARM     3.1.1  ARM编程模式     3.1.2  ARM指令概述     3.1.3  ARM异常及处理    3.2  MIPS     3.2.1  MIPS编程模式     3.2.2  MIPS指令概述     3.2.3  MIPS中断与异常    3.3  接口基础     3.3.1  总线概述     3.3.2  I2C总线     3.3.3  PCI总线     3.3.4  设备模型     3.3.5  一个IDE控制器设备实例第二篇  驱动模型篇  第4章  驱动的通用模型  第5章  VXWorks的驱动模型  第6章  Linux的驱动模型  第7章  WinCE的驱动模型第三篇  BSP/OAL篇  第8章  BSP的基本概念  第9章  BSP的设计要素  第10章  Linux的启动过程  第11章  WinCE的设计第四篇  扩展篇  第12章  理解程序的内部结构  第13章  嵌入式系统的设计思想结束语参考文献

编辑推荐

《嵌入式软件设计之思想与方法》可作为在校学生学习嵌入式软件设计原理的教学参考用书,也可作为嵌入式软件开发工程人员深入掌握系统软件设计的指南,以及嵌入式软件培训的参考教材。

作者简介

《嵌入式软件设计之思想与方法》从教学的角度出发,全面讨论了嵌入式软件设计的思想与方法。在编排上循序渐进,从基础准备,到驱动模型,再深入到整个系统及系统的构建。在讲解上通过建立模型来帮助读者系统掌握嵌入式软件设计的普遍原理与编程接口。内容包括:高效、稳定和规范的程序基础,多任务环境,I/O系统的内部结构,驱动模型,BSP设计要素,嵌入式软件设计的经验技巧;在硬件基础方面讨论了总线与设备的模型,基于MIPS和ARM SoC在多个系统平台VxWorks,Linux及WinCE下的系统资源的操控。

图书封面


 嵌入式软件设计之思想与方法下载



发布书评

 
 


精彩短评 (总计3条)

  •     只适合有经验的人看,会有所收获,在讲解哥哥驱动那块,都是点到为止,对于没有经验的人来说,没有太大用途。
  •     书很薄,内容也不多,但是点到的地方很多,很多地方一笔带过。是一本总结心得的书,如果工作经验不多,看了没什么感觉,只有以前自己碰到过相关的问题,看了之后才有感悟。概括的说,这是一本心经。
  •     总体来说,值得一看
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024