王朝网络
分享
 
 
 

涉足嵌入式领域

王朝vc·作者佚名  2006-01-17
宽屏版  字体: |||超大  

涉足嵌入式领域

作者:乾坤一笑

本文选自VC知识库博客园

一笑聊斋

“嵌入式”是个很火的名词,“嵌入式”也是个很大的话题。我之所以转方向从事嵌入式开发,不仅是看中了它的市场价值(及由此影响到的开发人员的薪水),更重要的是嵌入式开发对开发人员的全方位的素质要求。对于技术人员来说,这种全面的压力是很刺激的,工作也很有激情,嘿嘿。

如果把一个嵌入式产品的开发模块大概划分一下层次,大概是下图这样子的:

MMI(Man Machine Interface)

UI(User Interface)

协议

驱动程序

操作系统、监控程序

电气元件、电路板

做电路板的,那是硬件开发的工作,对于他们来说,做什么电路板都差不多,感受不到嵌入式的电路板与其它电路板太大的不同;做UI、MMI的,是很上游的,与做Windows下的代码开发也没什么大不同。我觉得最有挑战性的工作是做嵌入式设备的驱动程序,上要考虑如何给UI留个好接口,下要理解板子电路是怎么做的、有多少中断多少寄存器以及怎么调用。如果规模更大一点的板子,比如arm9之类的,又会有一个操作系统层,那就更复杂了,这个后面再说。

做MMI的,有时候可能比Windows开发还容易些。因为用到的类库、函数库、API函数要比Windows开发要少许多,比较容易全面掌握(从事Windows开发有可能做了2~3年了还摸不清到底有多少个Windows

API)。MMI毕竟属于嵌入式开发,它有它自己独特的难度:基本上没有IDE环境——很少能够用上VC6之类的IDE——往往是一个编辑器加上命令行编译器了事,排错比较难。所以,用EVC做嵌入式开发的人员自然是嵌入式开发人员中很幸福的一类人了。:)

如果选择了做驱动层,那么可就任重而道远了——它的全面性体现在硬件知识、软件知识、综合技能、外语能力。本文也主要想探讨一下这个方面,只当是对我半年的工作做一个总结,同时也对今后的学习方向做一个规划。

写驱动程序必须了解硬件机理。与PC机的驱动程序开发不同的是,PC上的驱动程序开发一般主要需要PC上装的操作系统的实现和要做驱动的那个外设的硬件构成;而作嵌入式驱动开发很多是没有操作系统的,很多只有一套简单的监控程序,所以需要了解整个板子的硬件构成。这就要求你最起码的几门功课要过关:电路基础、模拟电路技术、数字电路技术。这只是个起步,之后呢,如果做控制类的板子肯定要懂自动控制原理、现代控制理论,如果做通讯类的板子肯定要了解通讯原理、高级通讯原理、信号调制方面的知识,其中知识的复杂不是两三年能搞定的。据个例子说,做手机驱动的如果连直流漂移都不知道,肯定看不懂硬件资料,能写出来代码才怪呢。

驱动程序是小而精的程序,它要求对数据结构、算法、构架、编译原理各个方面都有深入了解和丰富的实践经验。如果做复杂的带有操作系统的板子,那么肯定还要了解操作系统的内存管理、线程调度等知识。虽然PC机的开发上有很多常用算法模块已经有很优化实现,但是这些代码往往不能直接套用在嵌入式设备的代码里,原因可能因为这段代码太大、太全、或者不符合项目的要求。嵌入式设备的RAM很小,因此我们编写代码必须仔细把握大小,甚至要关注到Byte级。嵌入式系统承受不了很多冗余的代码,所以很多常用算法都没有现成合适的函数库,需要你重新实现,根据硬件有针对性的重新编写。因此,精湛的编码技术、周密的代码规划都是必备的基本功。

当然最为重要的还是综合能力。比如一串口程序握手时出现错误失败了,原因可能有很多:线断了?接头脱焊了?程序有问题?芯片中代码有问题?等等等等。要做出判断很难。这时候我们就应该具备审查入微的能力,要能仔细判断出问题出在那,或者给出若干种Debug问题的方案逐个去突破。一般来说,我认为在开发过程中用脚本来辅助开发是一种效率很高的手段,比如windows下的wsh或者linux的shell

script都能够用来辅助代码的生成,或者用于构建自动测试环境。另外,由于做的很底层,技术很前卫,所以很多情况下我们手头上只有一些硬件的电气资料,或者有一大篇别人编写好的代码去参考。这时候,自学很重要,独立分析别人代码的能力也很重要。诸如SlickEdit、SourceInsight之类的辅助分析工具一定要熟练运用才行。(不过,幸好这些东东看看联机帮助就能搞定了,并不复杂)

整个研发中最最需要必备的能力就是外语能力了,尤其是英文。因为几乎所有的硬件资料都是纯英文的,等待别人翻译成中文根本不可能(翻译出来估计也都过时了),甚至有些是硬件厂商提供的绝密资料,能指望谁翻译去?我觉得外语能力也是我今后最需要加强的,至少应该以下4点:1)

不借助词典能够基本看懂英文技术文档;2) 老外开讲座的时候能够跟得上并随手做笔记;3)

用英文写工作总结轻松自如,写代码注释表述精确无误;4)和老外电话或者当面聊天很顺当。:)

这个要求确实有点难做到,不过必须做到,否则就是技术进步的绊脚石了。

好了,罗嗦了半天,说的也很片面。全当是自我总结,也希望对学弟、学妹们有点用,嘿嘿。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有