打印

ARM微控制器基础与实战

[复制链接]
1161|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feel123|  楼主 | 2012-5-30 17:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ARM微控制器基础与实战

ARM 微控制器快速入门的“敲门砖”


(几年前的一篇**,对现在的大学生还很有用)

学习与开发的困境

回头来看,我国单片机的普及教育已经搞了这么多年,但为什么还是有很多大学生毕业之后不能立即投入到实际的应用开发工作之中呢?通过严峻的人才需求趋势可以看到:很多电子类专业的大学生毕业之后的出路只有改行,而很多企业却在感叹人才难求,年复一年如此惊人地相似,不得不引起我们深刻的反思和令人感到痛心,我们需要对传统的教材和教法进行彻底的批判。单片机与嵌入式系统应用技术是一门实战性很强的学科,离开了实践就如无源之水。其实几乎所有成才的开发工程师都是一边学习、一边实践干出来,很少有真正的专家是通过课堂教出来的,包括我们业界知名的很多专家在内。到今天为止,8279、8255 还买得到吗?已经过去这么多年了,学生还在学习那些已经很早就淘汰了的器件,一个大学本科生读了四年大学连一个可靠的复位电路都设计不好,如果说要从可靠性设计出发来设计产品就更无从谈起。由此可以看出,我们的教材与教法违背了这门学科成才的规律,我们的大学一定要彻底地改变观念要尽快地从“教育型”的影印中走出来迅速地转向“研究型”培养人才的正确轨道上来。
其实,我一直认为“企业不是培养人才的地方” ,这应该是大学的责任,但我们却不得不花很多的精力用于人才的培养,而我们得到的直接好处就是从 2000 年到现在公司几乎没有出现过优秀人才跳槽的现象,就是一般的人才跳槽也微乎其微。究其原因何在?因为我们一直在尝试如何培养一流人才,通过这些年的努力我们掌握了快速、恰当地学习的方法和培养优秀而卓越人才的“秘诀” ,关键的关键是我们帮助那些年轻人找到了自己的位置和方向,而且我们也实现了自己的愿望,我和他们一样有共同的成就感,基于此我愿意贡献出来与大家共同分享。
谈到学习不得不谈到人们的思想与观念,这是人才成长与成功的源泉!超前的思想意识、正确的观念、良好的心态加上正确的学习方法就可以达到“不用扬鞭自奋蹄”的崭新境界。所谓教书育人这些根本的根本却常常容易被人所忽视,好像这是政治老师的责任,其实不然!我们应该将思想和方法教育放在首位充分调动学习者的积极性化被动为主动。效果最好的教学方法就是在实验室里上课,老师一边讲解理论,学生一边在计算机上操作和验证老师讲解的内容加深理解,每个学生人手一套开发实验板,一个学期下来至少可以做到考试这门课程不用复习,毕业之后对开发流程和集成开发环境可以达到烂熟于心的程度。
回头来看我国的单片机推广历程,可以设想,如果当初 Intel 公司首先推出的不是 80C31 而是一颗20PIN 的 Flash单片机,那么中国的单片机发展之路肯定要顺利得多。回到现实中来看,我国的 ARM 推广和应用技术发展之路与单片机的启蒙是何等惊人地相似。 多年来,单片机化电子产品的开发在很大程度上完全取决于开发工程师个人的经验、知识水平和智慧。大多数开发工程师在产品开发过程中的随意性、离散性都比较大,普遍缺乏系统的总结。从根本上来说,谈不上如何自觉地将离散的经验上升到知识的程度,甚至更加谈不上有比较清晰的项目管理和软硬件平台。无论是企业的决策者还是开发工程师计较元器件的成本成为头等大事,还未做出产品来第一件事情就想到“价格战” ,缺乏做精品的意识,缺乏如何保持企业可持续发展的战略眼光和思想,其实这些都是能够看得见的成本。事实上,危害更大的是看不见的“无形成本”却恰恰很少有人关注,比如,投入的人力资源是否合理、要投入多少开发费用、员工跳槽以后如何对产品进行升级和继续开发?产品如何快速上市?如何“先知先觉”地设计出高可靠性的产品等等因素,这些都是制约企业可持续发展的根本所在。
回头来看,成千上万的企业家和开发工程师无不感到困惑,欲罢不能痛苦在其中。当我们今天面临由8 位进化到 32 位微控制器市场的时候,我们到底如何克服过去学习和开发中所遇到的困难少走弯路?

选择一个功能恰当的 ARM 微控制器

俗话说得好:万丈高楼层从地起!也就是说无论做什么事,打好基础是根本,因此要想彻底掌握 32位ARM单片机和嵌入式操作系统应用技术一定要从基础做起。 那些内嵌的功能模块如TCP/IP、 CAN-bus、A/D 转换器、802.11、调制解调器、USB….…有如美丽的外衣一样仅仅是虚有其表而已,其实真正的根本还是 ARM 内核和一个基本的嵌入式操作系统内核,只有把握了“根” ,其它所有的问题都将迎刃而解。
通过网站可以看到,关于 ARM 的开发套件不下 20 种,到底选哪一种最合适?我认为,作为一个初学者挑选之前应该目标明确, 如何以最少的代价得到最大的收获?因为您学好之后将来做那方面的产品开发到现在还没有完全定性,还有用多长的时间可以快速学会,这也是很重要的,因为起步不顺利会严重地打击学习者的积极性。
事实上,有很多从事单片机应用开发的工程师可能一辈子都不会用到串行通信技术,甚至做了多年的开发工作之后还是没有深入地掌握串行接口应用技术,但却丝毫不影响他成为一个实实在在的单片机应用工程师。即便有一天我们在工作中要用到串行通信技术,我们通过长期的学习和开发所积累的“经验与知识”也足以帮助我们快速掌握串行通信技术。所以学习基于 ARM 内核的单片机应用技术同样如此,我们不应该过早地、过多地将精力用在 TCP/IP 等复杂功能模块和µClinux 等复杂的嵌入式操作系统内核的研究和学习上,这些诱人的“热点”很容易使人迷失方向,进而忽视对基础知识的深入学习,到头来说得头头是道,可真的干起来却离实际的需求差得太远。我们一定要知道,知识是永远也学不完的――学海无涯、人生苦短!我们学习的目的是为了满足应用的需求。 那么到底如何在有限的人生历程之中花最少的代价 “创造”惊人的价值呢?常言道:伤其十指不如断其一指!即是说:我们做任何事情首先一定要“集中优势兵力”击中要害,然后再根据实际的需要“各个击破” ,我们常常所说的“不战而胜” 、 “取法其上、得乎其中”讲的其实就是方法。只要方法得当,学习和掌握 ARM 和嵌入式操作系统应用技术其实十分地简单。因此,我以我们的学习体会和开发经验为基础,非常慎重地向您推荐 PHILIPS 公司的 LPC2106/2105/2104 微控制器作为您入门首选的 ARM 微控制器。


选择一个简单易懂的嵌入式操作系统


从过去到现在,学习操作系统的人越来越多,而真正深入掌握和搞通操作系统的人却越来越少。很多人从本科到博士都一直在学习操作系统,讲起来也头头是道,考试也不乏满分,可真正要他写一个简单的操作系统却比登天还要难。为什么?因为他在学习过程中根本就没有得到过很好的训练,大多数人也从来没有自己动手去写过一个哪怕错误百出而真正能够跑起来的操作系统,尽管大家天天在那里呼吁:我们中国人要有自己知识产权的操作系统,到头来还不是一句空话。学习 ARM 微控制器同样如此,如果不引起我们整个产业界的重视,如果没有良性循环的引导,我们最终的结局还是落后,那是早已写好的程序“死循环” 。
当然,有人会说我没有必要去研究嵌入式操作系统的源码,同样也能够作出产品,这一点也不假。而事实上,只有真正地掌握嵌入式操作系统才能达到随心所欲使用的境界。嵌入式操作系统不论多么复杂,不论代码多大,它们的机理是完全一样的,因此选择那一个嵌入式操作系统作为快速入门的“敲门砖”就很有讲究了。我认为首先要简单、有源码且稳定,第二学了之后要能够实用。从目前来看,可以选择的嵌入式操作系统有µClinux 和µC/OS-II。对于这 2 个嵌入式操作系统不同的人有不同的看法,可以说在各种网站的讨论社区形成了二大阵容,公说公有理、婆说婆有理,对于初学者来说莫衷一是、无所适从。
其实,我并不反对选择使用µClinux,相反我还提倡使用µClinux 用于产品,这是未来的发展方向,但现实的情况如何呢?并非每个人和每个单位都有这个能力。首先由于µClinux 代码太大,对于大多数人来说,要完全或者基本上读懂不是一件容易的事情。其二,网上确实也有很多公开的中间件源码,但并不保证拿来就可以稳定可靠地使用起来,还是需要我们进行二次开发,对于大多数人来说,这是一个不少的困难。其三,尽管讨论社区也很活跃,但却很难找到真正的技术支持,这是一个时刻不可回避的事实。因此如果没有实力和优秀的开发团队,切不可贸然选择µClinux 作为企业的开发平台。是不是开发产品就不能选择µClinux?也不绝对,在一般的条件下,一般的企业最好选择成熟的µClinux 开发平台和软硬件模块。商场如战场一切从头开发不可取,对于企业和个人来说规避风险从来就是第一原则。如果产品开发失败,严重的结果就是企业倒闭;对于个人来说,您失去了一次本来可以成功表现自己的机会。
对于初学者,我慎重地向您推荐源码公开的µC/OS-II 嵌入式操作系统。µC/OS-II 已经有很多产品成功使用的案例且得到了美国军方的认证,北京航空航天大学出版社也出版了配套的专著,国内熟悉这个嵌入式操作系统的开发人员特别地多,十分容易通过网站上的讨论社区得到帮助,更关键的是我们很容易通过阅读源码达到彻底掌握嵌入式操作系统的目的。最好的办法是通过阅读µC/OS-II 之后,然后自己写一个简单的能够跑起来的 OS,这是我们公司培训相关人才的一个成功的经验。我们在北京航空航天大学出版社出版的《嵌入式操作系统 Small RTOS51 原理及应用》专著就是通过学习积累的成果,我们开发EasyARM2104 开发套件和写作《ARM 微控制器基础与实验》的工程师都是这样走过来的,事实证明:通过深入地学习和解剖µC/OS-II嵌入式操作系统是迅速培养嵌入式系统应用专家的成功之路。


必须要有****的配套教材


如果仅仅是购买了一个开发套件而没有相应的配套技术资料,可想而知学习的效果肯定是很差的,因为只有配套的资料才能体现出设计者的原创思想,更为重要的是在学习过程中遇到了困难,配套的技术资料可以帮助您加深理解、解决问题,我们可以看看设计者是怎样解释这些问题的。《ARM 微控制器基础与实验》是 EasyARM2104 开发套件设计者,通过一边做一边积累再加工的原创技术资料,非常实用,其精髓就是使用了简单易懂的语言和例题来解释复杂的技术难题,这是本书最主要的特色。


良好的技术支持也是必不可少的


当然,我们购买产品不仅得到了硬件,而且也得到了软件,但一定要明白我们之所以选择某个产品,因为更重要的是我们购买了“服务” 。如果得不到良好的技术支持,还不如不买,因为遇到了技术难题,而您却找不到专家为您解答,这是非常痛苦的事情,往往得到的效果却是事倍功半。此时此刻,我们浪费的不仅仅是时间,更重要的是失去了稍纵即逝且可以展翅飞翔的机遇。

相关帖子

沙发
vivilzb1985| | 2012-5-31 11:22 | 只看该作者
未做出产品来第一件事情就想到“价格战” ,缺乏做精品的意识,缺乏如何保持企业可持续发展的战略眼光和思想,讲得很好哇

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

94

帖子

0

粉丝