|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
感觉写的很好,与大家共享!
众所周知,现代的嵌入式系统开发越来越复杂,性能要求越来越高,开发人员不能再满足于原来只专著于一点不顾其他的开发方式,原来的单打独斗也要改成现在的团队合作,可是面对浩如烟海的知识点,一个开发新手,如何才能尽快入门呢?如何才能在尽可能短的时间内做出象样的产品呢?《快快乐乐跟我学嵌入式系统》就是为这个目的写的。作为多年从事一线研发工作的过来人,自然有很多心得体会,我们希望能用自己的经验教训帮助初学者少走弯路。
本书将涉猎嵌入式开发的常见“热点”,如:bootloader、TCP/IP协议栈、文件系统FS、USB协议、各种总线驱动等。没有空洞的语言,全部用实例说话,不求全面,但求实用,使你能轻轻松松,快快乐乐地入门。现在的用人单位都希望招聘到有工作经验的雇员,而工作经验却要在工作中才能获得,这是一个先有鸡还是先有蛋的二难困境问题,单靠劳资双方是无法解决的,本书的作用就在于使新手不必参加工作就能获得工作经验,进而获得进入公司的敲门砖,同时公司也能招聘到合适人选。
初学者经常问到的问题是:“到底学习ARM7还是ARM9?到底学习ucos、Linux还是WinCE?”其实这些都不重要,最重要的是构造学习环境和学习氛围。不知大家是不是都有这样的体会:当你恰好有个项目和你所学有关或者有个高手带着你学,你就会进步神速!为什么呢?就是因为学习环境和学习氛围在潜移默化中熏陶了你,使你在不知不觉中功力大涨,获益良多。看过西班牙斗牛的人都会有印象,那只猛牛不断追逐斗牛士手中的红布,然而一次次扑空,我时常在想,如果那只牛能看到整幅图景,红布后面除了空气什么也没有,那它还会选择追逐那块红布吗!?同样的,ARM9、FPGA、Linux、DSP、模拟射频、芯片设计等时髦技术又何尝不是那块红布呢,我们不要做那只牛,千万别犯同样的错误。我们知道,使用同样的材料,大厨做出来的菜,色、香、味俱佳,而新手做的菜就难以下咽。同样的,我们有了开发板,有了源码,是不是就可以成为专家呢?答案是否定的,您还缺乏经验,还需要不断实践,最关键的是您还缺乏一个学习环境。这里所说的学习环境泛指技术指导,技术支持,文档和交流氛围。目前,网上开源代码越来越多,一些集成开发环境提供了丰富的范例代码,甚至一些厂商提供保姆式服务,但是,源码不等于软件,很多人落入陷阱,成了搬运工,收藏家,就是用不出来,究其原因,我认为是观念上的错误,以为有了和大厨一样的材料就能和大厨烧出一样好吃的菜,忘记了材料好坏只是表面现象,大厨的手艺才是决定性因素。因此,源码和高档开发板不是最重要的,最重要的是要有学习环境,包括详细的文档,交流氛围,有效的技术支持服务等。本书试图在源码和开发板之外提供一个开发环境,真正解决初学者的入门问题。
那么,该如何学好嵌入式系统呢?这就涉及到学习方法了,好的方法能使你事半功倍,基本原则是:1、学习不变的;2、学习常用的;3、象婴儿那样学习。
--------------
一、学习不变的
--------------
俗话说救火不如预防,很多人每天都很忙,疲于奔命到处救火,却不能抽出一点时间来想想如何预防火灾,忙碌是懒惰的表现---懒得动脑筋思考。事物分成四类,按优先处理次序排列为:重要且紧急;重要不紧急;不重要紧急;不重要不紧急。基本原则是做重要的事,不做不重要的,哪怕很紧急。很多人错就错在先处理紧急的事,到处救火,却忘了重要但不紧急的事---预防火灾。结果就是虽然整天忙碌,事却越干越多。学习嵌入式系统首先要抽象出系统本质,了解自己真正需要什么,磨刀不误砍柴工,做好这一步,后面可以节省大量时间,有效保护自己的前期投资,一劳永逸。例如: 一开始不要从具体的CPU架构和汇编语言学起,这些都是易变的内容,你换一种CPU就要从头学一次,不划算。要学就学那些不容易变化的内容:通用I/O驱动、万能中断处理机制、通用串口驱动、UNIX文件API接口、socket插口、POSIX标准等。当然初学者自己无法事先知道哪些内容是本质,这就要靠过来人总结经验了,本书总结了大量与硬件无关的内容,都是长期积累的经验之谈。建议初学者从上向下地学习嵌入式系统,先了解移植性强的应用程序,再深入到底层细节。
--------------
二、学习常用的
--------------
什么样的知识才能记得牢呢?没错,常用的内容记得牢!有人作过统计,掌握最常用的100单词就能应付日常生活需要,掌握5000单词就能覆盖80%会话内容。因为常用,就会经常得到复习,想忘记也不容易,这样学起来就轻松了。现在的关键问题是如何找到最常用的部分,幸运的是,常用部分一般会反复出现。本书的一大特色是不求面面俱到,而是重点突出常用部分,举一反三。这么做能用最短的时间取得最好的效果,是一条捷径。常用的另一层意思是尽量遵循标准,如果一开始就接受不正规的训练,甚至比不接受训练更有害,一旦养成坏习惯就很难再改了。比如:我们使用UNIX文件系统构造开发平台就比用DOS文件系统经典。何谓经典,经典就是经过了长时间实践考验,BUG少,使用广泛。本书介绍的ecos操作系统就是由计算机专家设计的经典嵌入式系统,越深入细节越能体会到它无处不在的专业性,通过它来学习嵌入式系统,能让你从一开始就养成好习惯,学习到常用的知识点。根据二八定律,20%的知识点覆盖80%的内容,而其余80%的知识点只能得到20%的效果,那么只要我们学习常用的20%知识点就能取得显著成效。
------------------
三、象婴儿那样学习
------------------
大脑的工作原理至今仍未搞清楚,为什么婴儿学习能力那么强到了成年反而衰退了?观察婴儿学习母语,就是多听---多模仿---多说,谁也没见过他们拿着字典和语法书学习母语,但是5-6年后基本就能自由表达自己的思想。反观很多成年人,学了十几年英语至今还是“聋子”、“哑巴”,书也未见得少买,为什么差距那么大?似乎人的大脑的最佳学习方法不是有意识地去学,而是多模仿多实践自然就会了。而且最好将以前的知识完全忘干净,象一张白纸一样,象婴儿那样学习。比如我的汉语很好,但我从没买过什么汉语四六级、走遍中国、疯狂汉语、新概念中文等书籍,也没参加过什么汉语培训班,因为我周围就是汉语环境,不知不觉中就能不断学习巩固。而我的英语书就买了不少,音视频资料也下载了很多,虽然英语水平还是老样子,但一看到攒了那么多书,刻了那么多光盘,心里就感到塌实安心,仿佛英语水平真的提高了,尽管大多数时候就是搬来搬去,掸掸土什么的。据我了解,一些初学者买了开发板也没时间用,束之高阁,到现在还是九成新,仅以别人有的我也有聊以自慰。想想也是,劳累了一天谁还有兴趣再埋头苦学呢。还有一些初学者成了收集狂,到处搜集各种技术资料,仿佛搜集得越全自己水平就能越高。印象中,我喜欢搜集整理各种英语资料,水平依旧;从未花太多时间在汉语上,却运用自如,而且越来越炉火纯青。可见,学习环境是多么重要,有了环境,通过多接触---多模仿---多实践,轻轻松松就能掌握嵌入式系统,根本不必专门去搜集各种资料。
本书就是基于以上理念设计的,旨在为用户创造一个开发环境,让使用者在不知不觉中轻轻松松、快快乐乐地入门。不同于其他入门书籍,本书每章都以一个有趣的实验开始,一上来就要求动手操作,没有乏味的概念讲解,而且实验内容很有趣很实用。例如:讲文件系统的部分一开始就要求把一个文本文件写到SD卡里并读出,进而启发设计一个硬盘录像机,然后讲解文件系统概念和各种不同介质上的文件系统实现;在TCP/IP协议栈部分,要求先实验一个静态网页服务器,然后讲解socket使用方法和协议栈设计注意事项,最后指导设计一个CGI大型动态网页服务器,把开发板改造成一个“托管主机”,即有趣又有用,学了就能用出来做些实际的事情;在USB章,首先实验USB收发,抓包分析过程,然后讲解如何设计和测试USB驱动程序,最后指导用CF卡/SD卡/HDD做个大U盘......大部分程序不用或很少修改就能移植到各种CPU体系上,保护用户投资。每学习完一章用户就能做点实际产品,这样就能学进去而且忘不了。总的原则是:有趣、抽象、常用、实用。具体内容详见本书目录。
本书配套一张光盘---“《ecos增值包》光盘版”。里面包含了本书介绍的开发环境,可以达到培训班的效果,同时大大节省食宿、交通、租金、请假费用,在家里实现培训班的学习,很少的投资很大的回报,有兴趣的读者可以尝试一下。
MCU博客-中国电子工程师博客网
http://www.mcublog.com |
|