《项目驱动——单片机应用设计基础》正式出版
0赞
《项目驱动——单片机应用设计基础》(北京航空航天大学出版社)是在《新编计算机基础教程》(本月下旬出版上市销售)的基础上,专为初学者编写的新教材(适用于大一第2学期),这是博主多年来第一次针对初学者并以教材的形式创作的图书,希望能够帮助初学者取得更大的进步。
一、创作起因
从某种意义上来说,当今世界完全处于知识大爆炸的年代,而最大的问题是我们常常经不起外界的诱惑,课程越开越多,教材越来越厚,而教学课时与实验环节经过压缩之后却变得越来越少,到头来学生的能力如何?什么都懂一点,却什么也不精通,势必导致学生解决工程技术问题的能力极差无比。
为了解决教育中存在的问题,作者深入高校开展校企合作,对创新教育进行了积极而有意义的探索。从培养学生创新性思维的角度出发,作者试图从教材创作开始,期望“通过项目驱动融合相关知识点(数据结构、计算方法、电机控制与检测传感技术等)”,这就是作者组织创作“高等学校电类专业新概念教材▪卓越工程师教育丛书”的原因。
尽管此前作者写过很多畅销的ARM嵌入式系统图书,且在全国范围内获得过好评,但却不能解决教学中存在的一般性问题。或许,《项目驱动——单片机应用设计基础》是一本让人看起来并不起眼,甚至不屑一顾的图书,但作者认为对于初学者来说,本书确实具有与众不同的价值,且能在培养学生的过程中起到一定的作用,因此慎重地向你推荐。
本书不仅融合了与数据结构、计算方法、直流电机及其功率接口等相关方面的知识,而且在单片机的教学中引入了嵌入式操作系统与程序设计基础。尽管TinyOS51看起来是一个基于80C51单片机的嵌入式微小内核,麻雀虽少但肝胆俱全,更重要的是学生能够通过TinyOS51真实地了解其中的奥秘和机理。当然,仅仅学习上述内容还不足以全面掌握与此有关的知识,因此在后续相关的教材和项目驱动中还会根据需要,不断融合更多关键的知识点,达到卓越计划的教学目标。
二、教学内容的安排和组织
尽管《新编计算机基础教程》是一本帮助初学者步入殿堂的入门级教材,也许你并没有完全掌握其中的所有内容。当你开始学习《项目驱动——单片机应用设计基础》之后,再回头来复习第一本书的相关内容时,那时就知道什么叫“恍然大悟”了。这就和学习游泳理论一样,一边游泳一边继续学习,效果一定更好,入门一定更快。本教材是按照56~64学时教学内容编写的,注重在教学中强化学生的动手训练,强调理论与实践相结合。
1.前4章内容的教学
第1章“深入理解嵌入式C”是《C程序设计》教学内容的延伸,在传统的教学中,无论是教材还是教法,几乎都会再次介绍单片机的C,甚至还有很多这方面的专著。其实,学习新的知识不是重复,而是找出其中的不同,因此,本章重点介绍了SDCC51与标准C的不同之处。并在此基础上,将C与汇编语言结合起来学习与研究,从而找出它们之间的关联,破译使用C语言的过程中遇到的问题,达到知其然其之所以然的目的。
第2章的内容初看起来是介绍单片机的“特殊功能部件与外设”,其重点在软件设计。
其实从事嵌入式软件开发的几乎都是聪明的高素质人才,但是,我们成功了吗?有多少人真正完成了我们新年时定下的设计计划呢?虽然软件的价值是无穷的,看起来任何人都会写代码,但作者从创办企业以来,深深地体会到在现实的生活中,只有真正的专家,才可能通过各种各样的方法设计出高质量、不超过预算、能按时提交的软件。我们看了很多书,我们写了很多代码,但实际上有多少人从中得到了帮助呢?如何改变我们的工作,最重要的方法是改变我们的做事方式。
本书以作者多年来积累的方法和经验为基础,以可移植的代码作为载体,从实战的角度出发,重点阐述了嵌入式软件的设计思想和方法,重在建立开发平台,为软件复用做好充分的准备,帮助初学者迅速跨越基于前后台与操作系统编程的鸿沟。与此同时,本书还是一本经典的C程序设计范例,以作者对C语言的理解,对关键的知识点作了深入浅出的阐述,因此,也有助于读者全面深入地理解和掌握C程序设计,以上内容就是本书最大的特色。
虽然作者通过本书初步实现了软件分层设计,但由于篇幅所限,有关实现分层设计与系统抽象,降低耦合度以及使接口与实现隔离等重要手段,则无法一一展开阐述,这是最大的遗憾,有待于在新的专著中进一步完善和提高。
第3章“数据结构与常用算法”重在引导读者入门,对数据结构与计算方法就有所了解,并在实战中自觉地学习和强化这方面的知识,因为本书毕竟不是一本阐述这方面知识的专著。
第4章“保险箱密码锁控制器(方案一)”,安排这个例子的目的,希望帮助读者从入门阶段开始就懂得如何构建软件平台的方法。而不是每次都从头开始编程,而是复用前面编写的代码,以最快的速度进入项目驱动实战阶段。
2. 后3章内容的教学
第5章“TinyOS51嵌入式操作系统”是一个全部使用C编写的开源微小内核,希望读者通过学习TinyOS51的实现机理,从而对实时操作系统有所了解。有了这些基础,当你学习高级操作系统时就会感到“似曾相识”。其实,只要排除了恐惧感和对所学的知识产生了兴趣之后,就会自然而然地登堂入室。
第6章“程序设计基础”是基于操作系统应用程序设计的基础,当有了这些基础之后,即便此前读者对TinyOS51某些内容理解还不到位,这个时候再回头来学习将会完全不一样。
第7章“保险箱密码锁控制器(方案二)”,其功能要求与方案一完全是一样的,但方案二是基于TinyOS51实现的,以两种不同的方式来完成。希望读者在基于“裸机”与“操作系统”的应用程序设计中,能够深刻体会到各种方法的特点和优劣之所在。其中的大部分还是以复用前面成熟的代码为主,而且层次更加清楚。作者希望通过此项目的设计,能够帮助初学者体会到程序设计之美,打开一扇通向未来之路的大门。
如果你通过认真学习并掌握了以上内容和关键知识点,我想,你已经具备了自学任何一种微处理器的能力了。
三、遗憾
由于作者同时在写作的不仅仅是一本教材,而是一套适合于“电类专业”的系列教材,因此有关嵌入式软件架构的“需求与设计”思想以及实现未能及时完整地体现和融合,预计将于2012年初着手修订。一个不容忽略的事实,那就是从1985年开始的20年时间里,在中国单片机几乎成了嵌入式系统的代名词。大多数单片机应用程序在1—8K之间,代码量相对来说比较少,以至于大量电子产品的软件开发模式几乎还停留在单兵作战的状态。
近年来,随着嵌入式技术的高速发展,代码量越来越大,产品上市时间一再延误,代码的维护难度也越来越大,软件呈现危机。作者从业三十年来,不仅见证了IT技术的高速发展,而且“正在经历”新产品的开发由单兵作战到团队开发的痛苦转变过程,事实上软件在创新中所起到的作用越来越大。
