返回信息流1.进行嵌入式学习前首先要对嵌入式有一个宏观上的了解
嵌入式领域包罗万象,这个行业已经存在了很多年,真正成为人们关注的热点也只是在最近几年。主要原因总结为以下几种
i 微电子技术的飞速发展,mos管特征尺寸的持续下降,使诸如处理器类的运行效率如虎添翼,功耗和性能方面均有显著提高,并且价格也越来越便宜,因此很多特殊应用的领域开始使用嵌入式解决方案
ii 社会分工越来越细,但真正做出一个系统也越来越复杂,应对这种趋势,就需要一个大一统的概念的提出。就好象软件他庞大就要从架构上设计好,嵌入式也是如此,早年的嵌入式其实指的是微控制领域,诸如51单片机控制,仅仅是用一些汇编程序完成所需的控制任务即可。直到ucos的出现,才能说真正的进入了嵌入式大规模应用的时代。
iii 多媒体移动终端的贴近生活,其实嵌入式早就融入了我们的生活,大家仔细想想,我们使用的网络打印机如何工作呢,我们的文曲星是怎么响应我们查单词(打游戏)的信号呢?我们的微波炉,智能收音机都是怎样出色的完成任务的呢?答案是,嵌入式系统。嵌入式在其中扮演了重要的角色,只是大家没有意识到,或者把它们看成很神秘的东西,没有真正去了解过。知道多媒体终端的出现,智能手机,PDA,智能系统等等等等。大家渐渐明白了,这些东西里面是有系统的(或者起码是有一系列指令集)的。真正的大融合要归功于risc架构的出现,他大大精简了指令集,使基于该架构的处理器,特别适合嵌入式的应用。加之,指令的通用性,很多产品的二次开发变得不再神秘,不会是想以前那样每个公司如果不用51的话,就得重新搞自己的一套解决方案,这样一来,他的资料自然是不会公开的。
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #1994同步于 2008/10/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
分享一些嵌入式学习的看法
fzylijun886
2008/10/29镜像同步16 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
iiii 国外软件支持正在向国内转移,随着我们教育水平的提高,国外很多门槛低的工作都交由国内来做,就好象软件外包。基于嵌入式的应用大部分代码,中国人一样也可以写的很好,而且就项目来讲,大公司都会规划的非常好,因而,我们只需要完成你自己的任务即可。这样我们的工作通过一根网线就可以传到国外,而成本只不过是国外的1/5~1/10。所以,现今嵌入式越来越火。
2.再谈一下,嵌入式目前遇到的挑战
i 各种技术的竞争
嵌入式虽然发展如火如荼,但是挑战也越来越大,因为嵌入式的目标是大一统的局面,很多人说嵌入式怎么怎么,那我只能说他们对嵌入式的理解太浅薄了,嵌入式实际上包含了所有与硬件和系统相关的领域,甚至于有的人说pc也是嵌入式(从技术层面上)~~这种说法没错,但是从微观上看,真正的嵌入式还是仅仅包含微控制器领域,比方说大家常用的arm9这款ip核,至于FPGA或者DSP大家都不太愿意承认自己是嵌入式的一员(实际上国外应该没那么在乎这种概念上的划分)。
那么,基于微控制器(arm,mips.etc)的嵌入式应用目前都有哪些挑战呢?
首先,在多媒体终端方面,arm或者mips的运算功能还不够强大,这点做嵌入式应用的人很容易体验到,比方说你的开发板是不是总死机呢?其实这不仅仅是你的系统不够好,代码优化不够,更重要的是处理器性能不行,否则,你的pc怎么就没事呢?任何垃圾代码都可以跑的无所谓,而不用关心内存是不是使用过多。因此DSP这支义军就挺身而出,这样就可以比较不错的解决运算问题,不过现在DSP大部分是嵌入进了处理器chip中,或者采用双chip解决方案(我们的手机)。
其次,我们的开发周期相对过长。因为我们是一整套系统,需要软硬件相结合,因而,需要有更加适合的开发系统。而就目前来讲,仅是开发环境的搭建,helloworld示例程序的编写运行就会将一大部分有兴趣的人拒之门外,这不得不不说是我们做的不够。而FPGA就做得很好,他们可以很快地吸引爱好者,入门门槛低,只要会编写VHDL或者Verilog就可以很快的进入到SOPC的开发。可谓见效奇快,但是我要说的是,基于chip的开发门槛高有门槛高的好处。就个人发展来讲,一个人是只会变代码,然后自动综合,能力强一点看看资源占用进行一下优化好呢,还是从系统设计到软件架构,针对不同的应用很快就能定制出性价比最高的解决方案好呢?答案应该是后者,但要成为后者就需要静下心来,潜心修炼内功,而不仅仅是搞一些花里胡哨的阿Q似的自我安慰。我的理由只有一个,门槛高说明跨过的人少,人少说明抢饭碗的人就少,这就是很好的理由不是么?
最后,pc的挑战。
很多嵌入式的应用之前都是在控制领域,但是现在pc越来越廉价。对嵌入式来讲会造成莫大的冲击,因为嵌入式打得就是针对专门应用定制平台的牌。其性能跟pc比还是有一定差距的,针对一些特殊的控制,一个pc绝对是能解决问题的,而成本也只有2k不到(廉价机器足以),相对于我们的开发板,坦白说这个价格并没有什么诱惑力。所以,在控制领域我们渐渐就会失去市场,毕竟装了windows之后,很多应用就成了软件工程师的工作,和编写桌面应用并没有什么本质区别。所以,我们的重点转向了看中功耗和体积的移动多媒体,这种随身携带的东西pc是不可能胜任的,但是嵌入式可以。
3.学习嵌入式的路线
这个路线不是专门针对某一领域的专家的建议,而是追求个人发展的一点点看法。
i 学习嵌入式,不应该把自己走窄了
之前已经说过,嵌入式包罗万象,想真正学好,需要对架构,板级电路,系统移植,驱动编写,应用软件编程和网络编程都有所了解。这么多的知识一下砸过来就让很多人望而却步,或者学了很多年都不知道自己到什么水平。在我看来这些方面都应该会,之后再考虑到底要走哪个方向或者更适合走哪个方向。
ii嵌入式首先要了解一些硬件知识
很多人都是急功近利的,但世事就是如此,谁忍得住谁就是最后的胜利者。也许上来就在FPGA上面跑nios很快,买开发板移植系统很直接,但仔细想想你自己做了什么呢?只是一个熟练工种,会与不会只是时间问题,等大家都会了你也就没什么竞争力了。所以,要比就比谁更全面。
我建议从chip的手册看起,了解chip的性能(这点做应用开发的也能做到),知道chip的接口都有哪些,如串口,并口,ADC,LCD,IIC等等等等,了解他们的原理,性能,外围电路的扩展方法,以及通信的时序等等,最好能够自己搭一些这样的电路,调试一下,就能对很多知识有深入的理解了,这个时间大概2个月足以。
iii在了解了硬件知识之后,需要学会可编程器件的编程。
FPGA现在应用很广,他也确实是快速解决问题的一种方法,之前我也在交流会上介绍过。FPGA现在是支持硬核拷贝的,就是综合出来的网单可以直接送到asic厂进行加工制造,虽然门数略有增多,但性能比全定制差不了多少,而开发周期却快得惊人。所以,作为一个嵌入式工程师怎能放过这个如日中天的技术呢?
其实VHDL和Verilog都很容易学,2周足以,然后把图书馆的实例书照样编一边就可以了。就目前来讲,高层次综合还不是很好,所以做到编程序的时候脑子里自动映射成逻辑功能单元还是很必要的。这些逻辑单元就是与或非门,加法器,乘法器,多路选择器,三态门等等。很简单没什么了不起的,这也就是我说的门槛低的原因。
加一条进阶,如果这方面想有更深的造诣,就把通信领域相关的协议实现在FPGA上面,串口网口都是有源代码的,直接下载参考编写即可,这样可以对时序和电路结构有一个深入的了解,有助于个人境界的提升。
IV操作系统的理解
要熟练深入的理解操作系统,注意:这不仅仅包括linux,还包括ucos,RTlinux,wince,vxworks等等。入门我建议ucos,5k代码,很快上手。linux花费的时间长点,但是我极力推崇这个,原因有很多我一一道来。首先,如果你做ucos,在自动化领域(包括数控机床)这些应用,它足以胜任了,但是现在做什么都要有人机交互,在这点上ucos不够漂亮~~其次,如果你选用wince,不好意思,你还是没有逃离ms的魔掌,wince开发快,vc的程序员很容易转型,这样做vc的人可能会蜂拥而至转行搞嵌入式,那么我们的竞争力何在呢?还是门槛太低的原因。而linux我觉得恰到好处,首先它开源,其次他不是那么容易上手,学明白后甚有醍醐灌顶的感觉,而不明白的一直在那打转。那么这不是恰到好处么,既能有力的区分高手和民工,又非常人不可及。何乐而不为呢?至于vxworks,这个是付费系统,很多公司可能用不了,我也不是很了解,就不提了。
V驱动程序的编写
在玩熟了系统之后,驱动程序就是成为高手的第一关了。很多人都学驱动,事实上,编写一个驱动并不难,难的是让他很好的工作在系统中。因为你编写驱动时并没有开启所有的任务,让系统全速运行。所以,之后的测试优化是非常耗费时间和精力的。而这个也是优劣的区分点。写好一个驱动需要对系统和硬件有比较深入的了解,如果你完成了上面的几个步骤那么这个环节将会不在话下。换句话说,如果你坚持到了这步,你已经能够体会到静下心来学习所给你带来的好处了。驱动程序也有很多参考代码,linux源代码里面有很多的参考,往往略加修改即可。
VI 应用程序,所线开花
应用程序相对于之前的就比较庞大了,我个人认为这方向熟练工种就可以做。所以,我们只需要掌握,数据库,图形界面编程的一种,网络协议这三个方面即可。数据库mysql就可以了,图形界面,我比较喜欢qt,gtk最好也学下,毕竟玩的是linux,网络协议就需要个人选择了:)
VII 系统层次
在经过了前六步的磨练之后,相信你已经是个高手了,那么如何成为技术总监一类的人物呢?这就需要在系统架构上下功夫了,相信基础过硬的话,你会很轻松的定制出性能优越的系统。从芯片选型,系统挑选,接口定制,功耗的估计等你都需要考虑。至此,相信你已经成为一个合格的嵌入式工程师了,之后的发展就需要你自己的深入理解了:)
最近一直很忙,见到FPGA小组的成立,过来顶一下我们的版面,,以上全是原创:)
【 在 lester98 的大作中提到: 】
: 插队了,删了重贴
: 说地好,非常赞同你的观点,不知道是不是原创
: 我一直认为手机以后会变成一个移动信息终端,性能会在不远的将来达到现在普通pc的水平的。会有更多应用需求,所以有的钱赚呢
: ...................
居然又插队了,再删,原创的就m之吧
说地好,非常赞同你的观点,不知道是不是原创
我一直认为手机以后会变成一个移动信息终端,性能会在不远的将来达到现在普通pc的水平的。会有更多应用需求,所以有的钱赚呢
不过不觉得pc会冲击嵌入式,因为二者定位不同,在不讲求体积和功耗的情况下,嵌入式不可能跟pc去竞争的。倒是在某些对体积功耗有些限制的情况下,嵌入式会蚕食pc的市场
另外,嵌入式的复杂和深度决定了有丰富工作经验的工作人员是更吃香的,比程序员之类的工作养老多了,这也是我决定选择这个方向的原因之一!
【 在 fzylijun886 的大作中提到: 】
在经过了前六步的磨练之后,相信你已经是个高手了,那么如何成为技术总监一类的人物呢?这就需要在系统架构上下功夫了,相信基础过硬的话,你会很轻松的定制出性能优越的系统。从芯片选型,系统挑选,接口定制,功耗的估计等你都需要考虑。至此,相信你已经成为一个合格的嵌入式工程师了,之后的发展就需要你自己的深入理解了:)
: ...................
这就是俺的目标啊,希望能在三五年内达到这种水平
【 在 lester98 的大作中提到: 】
: 居然又插队了,再删,原创的就m之吧
:
: 说地好,非常赞同你的观点,不知道是不是原创
: ...................
intel最近主推的MID概念,就是看准了这个方向,移动互联,未来技术的发展,很有可能就是如此。
认真学三年肯定没问题的,毕竟我们是bupter:)
【 在 lester98 的大作中提到: 】
: 在经过了前六步的磨练之后,相信你已经是个高手了,那么如何成为技术总监一类的人物呢?这就需要在系统架构上下功夫了,相信基础过硬的话,你会很轻松的定制出性能优越的系统。从芯片选型,系统挑选,接口定制,功耗的估计等你都需要考虑。至此,相信你已经成为一个合格的嵌入式工程师了,之后的发展就需要你自己的深入理解了:)
: 这就是俺的目标啊,希望能在三五年内达到这种水平