发表于:2005-08-25 13:19:00
1楼
我对嵌入式开发的几点看法
[ 转帖:老狼 发表于 2005-8-23 17:20 http://www.21icbbs.com/ ]
我一直反对在开发中用到LINUX,即使在公司的项目开发中,首先,我不是微软的枪手,也没必要为微软吹嘘,站在一个嵌入式开发人员的角度上,我们不可避免的要做一些PC机软件的开发,我相信大部分嵌入式开发人员都是在windows2000上做开发的,不论我们画电路图还是软件调试。我们要做接口通讯,不论是串口还是并口,或者USB,我相信PC机软件的开发部分大多数人用的是VC,如果你现在还在用VB,我建议你改用VC,其实。VC是一个很好的开发工具,如果有一天,你想做WINCE的开发,你会很快适应EVC的,一个人的精力是有限的,不可能样样都精通,我们应当考虑知识的可重用性,我是一直都用C开发,PC方面用VC,这样,我想将来做WINCE的开发,会很快适应EVC的。我一直在考虑用最小的代价换来最大收益,我现在在学VERILOG,原因是他和C比较接近,我和容易能转到它上面,我也想用SystemC,但是能找到的资料太少了,只能放弃。以后还想学学Java,也根C差不多,我这辈子就打算跟着微软混了,我所作的开发都是在微软平台上,我别无选择。
说到嵌入式开发,好像就一定要上一个操作系统才显得是嵌入式,其实大可不必,就现在ARM的开发,我个人的建议是,操作系统能不上就不上,操作系统占用大量的系统资源,会把你的系统的速度大大的拉下来,这样你可能还要用到第二个CPU,来作为协处理器,尔两个CPU之间传输数据很麻烦的,你会发现有操作系统的那个必需要写驱动程序。我相信我们这些做设备的人,写驱动程序都比较困难。特别是如果你想要做算法的时候,例如:FIR,IIR,FFT.速度就是关键,就对工业产品的开发而言,一个简约的无操作系统的设备,不论从速度还是可靠性上来讲,都是很有优势的。但是又一个问题,无操作系统,如果你做的设备要通过接口把数据存到U盘上,就比较困难了。其实你可以用CF卡来解决这个问题,如果想做网络接口,问题不大,网上有很多这方面的资料。
再说USB的开发,现在网上也比较热,其实冷眼看12Mbit/s 以下的USB,我说它是个鸡肋,就ARM的USB速度来看,12Mbit/s,就是说,每秒能传输一兆字节,如果把协议那部分除去,也就几百K字节,还没有并口的速度快,而在软件的开发上,要比并口难很多。如果要上USB,我觉得还是480Mbit/s的CY68013,否则,建议你用并口。
再论CPLD/FPGA,我觉得作为嵌入式开发人员,我们应该会CPLD/FPGA,特别是做数据处理,我现在也正在学VERILOG,其实不难,只是还没有机会实践,不能按照个人的喜好来做设备呀,一个自己都没搞得很清楚的东西,千万不能搞到设备里。否则后患无穷!再过一段时间,我打算用FPGA来做FIR,FFT,那时我的设备速度就能真正做到完全实时采集,实时处理了,不好像现在这样,故障发生后,还用占用几百毫秒的处理时间。
其实,做一个电子工程师,我觉得太累了,既要懂模拟电路和数字电路(Protel),又要做软件的开发(汇编和C),还得做一部分的PC机软件开发(VC),当然,你最好还得懂CPLD/FPGA,最后还有嵌入式操作系统(ARM linux, WINCE,vxwork等)。也有人说,其实只要能做好其中一件事就可以了,可是这样你会发现,在工作中你就会受制于人,有的时候一个小的问题就能把你憋得团团转。求人不如求几,拜佛不如拜自己。
DSP是一个好东西,但是不同厂家的产品差别很大,无法统一到一个平台上,只能暂时忍痛割爱,以后有时间在学吧。
说到学新的技术,有的时候,我觉得就像在赌博,在学的时候,你无法预测它的发展方向,一个好的技术未必能在市场的竞争中立主导的地位,一个很好的片子,可能会因为某种原因停产,也可能在市场中无法普及,这样就不会有好的性价比,也很难保证长期的供货,拿51来讲,我就的不如摩托罗拉的单片机,也不如MSP,PIC,但是在中国市场做得好,就有很好的性价比,开发工具也很方便,做产品的时候,不光要考虑单纯的技术,还要考虑芯片的性价比,长期的货源,它的替代品,升级产品。
一个好的工程师不过是把设备做完就万事大吉了,还要善于同客户沟通,看到用户的真正需求,不断的积累需求,以便在以后版本中改进你的设备。如果是与其他的设备接到同一系统中,还要考虑接口的软硬件兼容。其实我觉得与其说我们在于设备打交道,还不如说最终还是和人打交道。