做驱动的知识背景

原创 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]
不敢称是一家之言,小小体会。欢迎大家交流。[

【Android】背景知识

Android名字和log的由来     其设计师安迪.鲁宾(Andy Rubin)非常喜欢玩一款街机游戏,叫Gauntlet。里面有个人物,他特别喜欢玩,叫Android。所以他也就把他开发的作...
  • Gnd15732625435
  • Gnd15732625435
  • 2016年05月15日 21:34
  • 757

第1章:阿里云机器学习实践之路 / 第1节:机器学习背景知识以及业务架构体系

算法开发与算法推导 目标人群----算法使用者。 实验数据,实验工具,相关文档指导。...
  • as472780551
  • as472780551
  • 2017年08月08日 09:37
  • 171

关于驱动的入门知识

首先在编写linux设备驱动程序的时候需要一些基本的技术基础如下: 1,编写驱动时首先自己需要对HW有个较好的认识,比如一些常见的SRAM, Flash,SDRAM,磁盘的读写方式,UART,i2c...
  • tyl_355402
  • tyl_355402
  • 2012年02月29日 00:17
  • 527

Linux驱动开发之 三 (那些必须要了解的硬件知识 之 存储器篇)

Linux驱动开发之 三 (那些必须要了解的硬件知识 之 存储器篇)本文重点学习存储器相关的基本知识,网络上对RAM,ROM,FLASH等有非常详细的介绍,老谢将这些知识点摘抄整理并加以注释如下。这个...
  • itxiebo
  • itxiebo
  • 2016年05月02日 13:40
  • 3124

与Web Service有关一些概念和背景知识

本文内容主要收集自微软MSDN中国,帮助建立起与webservice相关的一些概念和背景知识。何谓 Web 服务?Web服务是SOA的一种具体实现技术,SOA的推广归功于WebService标准的成熟...
  • cattiger75
  • cattiger75
  • 2007年11月01日 12:02
  • 2103

word2vec 中的数学原理详解(三)背景知识

word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单、高效,因此引起了很多人的关注。由于 word2vec 的作者 Tomas Miko...
  • peghoty
  • peghoty
  • 2014年07月19日 22:49
  • 54210

第01讲- Android背景知识

第01讲Android背景知识 Android是基于Linux系统 Android系统框图 : 第一、操作系统层(OS) 第二、各种库(Libraries)和Android 运行环境(Ru...
  • u012463017
  • u012463017
  • 2014年11月14日 10:43
  • 338

linux驱动相关知识整理

由于工作的需要,需要去看emmc驱动的代码,根据我的学习流程,先总结一下对驱动架构的了解。 一、构造和运行模块 1.1、模块的加载和卸载 Linux有许多功能是通过模块的方式,在需要时才载入kern...
  • dengziliang001
  • dengziliang001
  • 2016年07月25日 15:26
  • 734

webGL背景知识

最近部门技术规划,需要了解一些webGL技术,看是否用到后续的项目中。所以,在网上查了相关资料,并准备初步入门测试一下。后面可能会把学习笔记整理到blog上进行备份。...
  • lzwdlut
  • lzwdlut
  • 2016年07月15日 17:21
  • 466

Python背景知识

OpenMV IDE自带串口助手,对应COM口开启终端后(应断开编译器与MV的连接),可在终端内输入命令并向MV发送,和windows命令行下开启的交互模式类似 Python的基本语法如下:     ...
  • zjanl
  • zjanl
  • 2017年11月30日 22:12
  • 78
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: 做驱动的知识背景
举报原因:
原因补充:

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