话说嵌入式——浅谈嵌入式之我见
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
话说嵌入式
金秋九月,阳光煦暖,丹桂飘香,在大家紧锣密鼓准备迎新时,我回到了**,也迎来了我大学生活的最后一个九月。三年前,我怀揣着梦想与对大学的憧憬来到这里,三年后,我依旧站在这里,不同的是,在这里看你们讲述那每年都要重复的故事。
在我大学的最后一个暑假,我有幸接到在信科系人气颇高的缪宁老师的邀请,要我为大家介绍一下我学习嵌入式的经验,或许是我参加了信科系承办的计算机技能大赛的缘故吧,让老师误认为我学了很多,会了很多。其实,自己的斤两自己心里还是很清楚的。在嵌入式方面,说自己一只脚踏入了门槛,已是高估,旁的自然更不敢多说。但是,缪老师的热情着实令人感动,我也只好不顾自己的囊肿羞涩,拿出我仅有的一点经验与大家分享,如果能在你们今后的学习道路上起到些许的帮助,也算是我发挥了自己的余热吧。
作为学生,我深知那些常人根本无法理解的理论是多么的让人反感、多么没有意义,所以在这里,我尽力抛开那些不知所云的概念和理论,和大家探讨一下究竟我所理解的嵌入式是怎样的。当然,这样一来难免会在不经意间显露出我捉襟见肘的功底了,如果抛出一些谬论或者不为大家所接受的观点,还请大家见谅。
闲话少叙,现在就我将自己心里的嵌入式摆在你们面前,让你们了解我是怎样把那一只脚跨入嵌入式的世界。
直言不讳地讲,在我人生的前十八年,我从来没有接触过甚至从来就没有听说过嵌入式软件,对于“嵌入”,也只停留在字面,无非是在某个地方镶嵌上什么东西。直到高考结束,估分、填志愿、拿到成绩、再填志愿(相信很多同学也有类似的经历吧,呵呵),在那本厚厚的册子上,我发现了****,看到了嵌入式软件,这是一个与众不同的专业,或者对于当时的我,说它是一个与众不同的名字更为贴切,因为我并不了解它,也包括那些泛滥于各大高校的会计、金融、计算机、软件工程,具体是做什么的统统不了解,只觉得嵌入式像是高高浮起在它们之上,让我迫不及待的开始查阅,最终,我毅然决然的把它填在了志愿表的第一栏。
如我所愿,不久我便收到了****的录取通知书,也如期来到这里报道,同样,也作为迎新的对象。现在想来,那时候的自己一定很好笑。慢慢的,我开始熟悉这个陌生的环境,熟悉陌生的人,熟悉这个陌生的专业。至此,嵌入式在我心里的定义就是:“除PC机以外的所有智能系统”。
座座高楼平地起,我不是天才,也没有任何过人的能力。我的大学一年级和多数同学一样,包括其它专业,都是从最基础的课程学起,高数、英语、体育……少有的几门专业课就成了我们炫耀的资本,想在想起来应该有C语言,汇编和让我们难忘的电子电路。那时候的我们真的不愿意学,也学不明白,孰是因孰是过也不作争论,只是知道每次都是勉强的去应付考试,到头来,考试及格了,却不知道自己学了什么。好像那时候的自己只记得考试,却忘了嵌入式是什么。
大二是一个分水岭,开始觉得不能这样庸庸碌碌的走过四年大学,再碌碌无为地过一辈子。我开始重塑当初的梦想,我要以自己的努力,借助我喜欢的计算机以及我还未曾深入了解的嵌入式这一平台来弥补我不得不填两次志愿的遗憾。因为大家说,IT人不问英雄出处,这也正是我当初的信念,想抛弃过去的失败凭借自己的努力去争取美好的未来,IT路就是一条康庄大道。每天我都一边充实自己的生活一边寻找着通往成功与梦想的路,在这段迷茫的时期,我也走了很多弯路,我去学会计,去学金融,甚至还差点去学了日语,在自己专业上,学C,学JAVA,学各种别人说过好的东西,每天碌碌却没有方向。
大三了,能学的都学了,学不会的也放弃了,开始为自己的未来担忧了。已为大三,却还不知道自己要干什么,实在太荒唐了。无奈之下,我决定集中一段时间和精力去思考,思
考自己要做什么,怎么做。路是自己选的,更要自己去走,我开始和老师们交流,在论坛上发帖,结识各种各样能成功规划自己人生的朋友,终于有一天我把决定告诉自己:我是冲着嵌入式来的,我就要带着嵌入式走!
在此,我还要郑重的感谢一位老师,他就是从信科系创建之初就坚持每天坐三个小时班车给我们来上课的任春明老师。在我第一次和他谈过我的想法之后,他给予了很大的支持与肯定,为我制定了一整套的学习计划,并不断地给予鼓励,告诉我现在开始一点儿也不晚。这里,我想说一下,对于学习计划,确实没有适合所有人的。有人喜欢看书,所以不管看不看都要买来。有人喜欢听讲,索性花大价钱到外面参加培训班。我个人比较偏爱找个安静的地方,看看网络上流传的视频,再翻翻内容相对匹配的教材。这样,既得到了培训班的待遇,又能有一个高效的环境,何乐而不为呢。
根据任老师的安排,我最先接触的是已经熟知却从未见过的51单片机(大一、大二的教材里曾多次提及),当时我的硬件条件就是,笔记本一台,视频一套,教材一本,外加实验板一个。学习嵌入式的人都知道,实验板是必不可少的,其实就像学普通的软件开发一样,不动手去练,永远也不能真正的掌握。实验板到手的当天,我便迫不及待的开始了我的嵌入式学习之路。总结第一天所学到的就是,终于知道什么是单片机,什么是嵌入式。像前面所提到的,所谓“嵌入”,无非就是把一样东西镶嵌到另外一样东西上,而嵌入式的概念与其相似却又有所不同。给大家打个或许不太恰当的比方,到现在为止,我自己也是这样理解的。它是将一块软硬件相结合而组成的“大脑”装入需要它的“机器人”里。这个大脑就是我们嵌入式开发人员要去完成的,我们要赋予机器人以生命,要告诉他去做什么以及怎样做。而这个所谓的机器人未必真的具有人地形状,但它却遍布我们生活的方方面面。
大家可以仔细想一下,为什么洗衣机知道什么时候正转什么时候反转?为什么空调可以根据室温进行自动的调节而不是一味的吹风?更常见的,看电视的时候,为什么我们调音量的时候频道不变?难道电视机能感受到你的意念吗?大家不要觉得问题幼稚而可笑,不管什么样的问题都要看你怎样去思考,你会觉得数学家们研究“1+1”的问题可笑或是无聊吗?当然不是,所以我们就要真的去思考,日常生活中触手可及的物品,简单实现的操作究竟是如何实现的呢?是的,正如前面提到的,因为我们提前为洗衣机,为空调,为电视机装入了可以理解我们意图的“大脑”。
现在我们换位思考一下,如果我们是一部可以吹出冷气的空调,我们要怎样去工作。
首先,我们要有人告诉自己,“我现在热,快给我吹冷气!”,这就好比有人按了开关。那好,我们作为一部空调,一部“智能空调”,我们可以骄傲的告诉那个人:“我很智能,你想要怎样的温度都可以!”。之后,这个人输入的温度是26摄氏度。我们怎么做呢?用程序员的思维去解决问题,我们首先要获得现在室内的温度,是不是高于26度,如果高(这里应该是一个if判断吧?呵呵),我就要吹出冷气去降低温度,如果不高,或者经过我的努力降到26度以下,我就可以偷懒不工作。而休息的时候我们还要不断地去检测室温是否回升,待温度再度高于26,我们重新工作,如此反复…
怎样,现在你已经基本了解了空调的工作思路,那我们就从嵌入式的角度去理解这个过程,作为一部空调,你的整个思考过程充分体现了智能的概念,但是你的思考是需要有使用者给你的操作信息和你所采集的温度信息做依托的,这就是“输入”。你所做出的反应就是“输出”,嵌入式的设备就是在不断地获得输入,经过自己的“思考”,最后做出一个或若干个反应作为输出。
现在,我们不妨回到理论的范畴,计算机系的同学一定熟知一个概念,那就是冯诺依曼模型,当然,我只知道有这个东西,具体是什么已然被记忆尘封很久了,呵呵,但是网络是发达的,只要百度一下(据说百度什么都知道),在我得到的诸多答案中,我挑出一句最关键的,免得大家看多了头疼,“计算机必须具备五大基本组成部件,包括:输入数据和