做驱动的知识背景

原创 2006年05月30日 15:56:00
写驱动程序必须了解硬件机理。与PC机的驱动程序开发不同的是,PC上的驱动程序开发一般主要需要PC上装的操作系统的实现和要做驱动的那个外设的硬件构[52RD.com]
成;而作嵌入式驱动开发很多是没有操作系统的,很多只有一套简单的监控程序,所以需要了解整个板子的硬件构成。这就要求你最起码的几门功课要过关:电路基[52RD.com]
础、模拟电路技术、数字电路技术。这只是个起步,之后呢,如果做控制类的板子肯定要懂自动控制原理、现代控制理论,如果做通讯类的板子肯定要了解通讯原[52RD.com]
理、高级通讯原理、信号调制方面的知识,其中知识的复杂不是两三年能搞定的。据个例子说,做手机驱动的如果连直流漂移都不知道,肯定看不懂硬件资料,能写[52RD.com]
出来代码才怪呢。[52RD.com]    [52RD.com]
驱动程序是小而精的程序,它要求对数据结构、算法、构架、编译原理各个方面都有深入了解和丰富的实践经验。如果做复杂的带有操作系统的板子,那么肯定还要[52RD.com]
了解操作系统的内存管理、线程调度等知识。虽然PC机的开发上有很多常用算法模块已经有很优化实现,但是这些代码往往不能直接套用在嵌入式设备的代码里,[52RD.com]
原因可能因为这段代码太大、太全、或者不符合项目的要求。嵌入式设备的RAM很小,因此我们编写代码必须仔细把握大小,甚至要关注到Byte级。嵌入式系[52RD.com]
统承受不了很多冗余的代码,所以很多常用算法都没有现成合适的函数库,需要你重新实现,根据硬件有针对性的重新编写。因此,精湛的编码技术、周密的代码规[52RD.com]
划都是必备的基本功。[52RD.com]    当然最为重要的还是综合能力。比[52RD.com]
如一串口程序握手时出现错误失败了,原因可能有很多:线断了?接头脱焊了?程序有问题?芯片中代码有问题?等等等等。要做出判断很难。这时候我们就应该具[52RD.com]
备审查入微的能力,要能仔细判断出问题出在那,或者给出若干种Debug问题的方案逐个去突破。一般来说,我认为在开发过程中用脚本来辅助开发是一种效率[52RD.com]
很高的手段,比如windows下的wsh或者linux的shell[52RD.com]
script都能够用来辅助代码的生成,或者用于构建自动测试环境。另外,由于做的很底层,技术很前卫,所以很多情况下我们手头上只有一些硬件的电气资[52RD.com]
料,或者有一大篇别人编写好的代码去参考。这时候,自学很重要,独立分析别人代码的能力也很重要。诸如SlickEdit、SourceInsight之[52RD.com]
类的辅助分析工具一定要熟练运用才行。(不过,幸好这些东东看看联机帮助就能搞定了,并不复杂)[52RD.com]    [52RD.com]
整个研发中最最需要必备的能力就是外语能力了,尤其是英文。因为几乎所有的硬件资料都是纯英文的,等待别人翻译成中文根本不可能(翻译出来估计也都过时[52RD.com]
了),甚至有些是硬件厂商提供的绝密资料,能指望谁翻译去?我觉得外语能力也是我今后最需要加强的,至少应该以下4点:1)[52RD.com]
不借助词典能够基本看懂英文技术文档;2) 老外开讲座的时候能够跟得上并随手做笔记;3)[52RD.com]
用英文写工作总结轻松自如,写代码注释表述精确无误;4)和老外电话或者当面聊天很顺当。[52RD.com]
[52RD.com]
×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××[52RD.com]
[52RD.com]
感觉咱们这个论坛怎么这么冷清,上面的引用一位版主的帖子,发起一个话题,给大家增加点热气。我做驱动两年了,认为做驱动在不同的公司会是不同的层次,引[52RD.com]
用的这个帖子可能要求太高了,应该是平台提供商做的层次,我认为处于design house这个层次的话,做驱动需要以下的知识背景:[52RD.com]
[52RD.com]
1、语言基础[52RD.com]
[52RD.com]
ASM,C,C++,c语言必须要熟悉,(我不说精通),因为驱动大部分都是c写的,因此你首先要看懂别人的代码,才能集百家之长。这只是入门条件哦,如果要深入的话,估计到时候自己就知道自己的差距在哪里了。[52RD.com]
[52RD.com]
2、硬件基础[52RD.com]
[52RD.com]
模拟电路,数字电路,肯定是要有基础的。因为做驱动肯定要与大量的datasheet打交道,没有这点知识背景,连电路图都看不懂,估计会很吃力的。[52RD.com]
[52RD.com]
3、英语能力[52RD.com]
[52RD.com]
至少能看懂datasheet和技术资料吧,哈哈,别的就不说了[52RD.com]
[52RD.com]
4、工具的使用[52RD.com]
[52RD.com]
souce in signt,TRACE32,示波器,等等等,分别是代码编辑工具,仿真调试工具,硬件调试工具,这应该是我们debug时候的朋友了,当然还有更好用的工具,就要看你公司的状况了,当然高手也不一定必须用这些工具,不过善假于物,总会事半功倍的![52RD.com]
[52RD.com]
[52RD.com]
[52RD.com]
不敢称是一家之言,小小体会。欢迎大家交流。[
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

linux驱动由浅入深系列:camera驱动之一(背景及基础知识篇)

这篇文章了解一下与摄像头相关的概念知识,如光圈、快门速度、CCD,CMOS图像传感器、彩色滤波阵列、白平衡、自动对焦等。下一篇文章介绍应用层通过摄像头获取一张图片的实例程序,之后再逐层深入linux的...

WLAN技术背景知识

  • 2011-12-12 15:57
  • 1.51MB
  • 下载

Field II 背景知识

  • 2013-10-24 19:18
  • 2.34MB
  • 下载

HBase实战 2.2.5 背景知识:HBase读路径

2.2.5 Under the hood: the HBase read path As a general rule, if you want fast access to data, keep i...

C#背景知识

  • 2012-12-11 12:56
  • 1.09MB
  • 下载

关于设置Dialog背景颜色及其控件颜色中涉及的知识点

1.函数OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)     函数的命名:Ctl为Control的缩写,虽然一般Control的缩写为Ctr,但这...

001_anroid之 背景知识

  • 2015-10-31 13:33
  • 30.40MB
  • 下载

DSP入门前的背景知识

数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)