驱动程序开发的模具

 

自从有了操作系统后,就诞生了一种职位叫:驱动程序开发。本文描叙驱动开发所需要的学习方式。

 

开发驱动程序和编写应用程序之间的区别从招聘岗位可以看出:程序设计师和驱动开发师,它们是设计和开发的区别。设计重点在需求阶段,开发在于学习阶段。所以说,两者的主要区别是:编写应用程序不需要经常性的学习,但是,开发驱动程序却需要经常性的学习。

 

现实情况是,你会编写这个驱动,并不见得你能编写那个驱动,每个驱动都有相关的专业知识,所以每写一个驱动之前都需要学习一下。开发驱动是很憋屈的事情,驱动是一个中间层,它的下层是硬件,它的上层是操作系统,两者都很硬性的规定了交流接口,驱动只能按照规则来编写,所以,写驱动之前需要学习的知识,其实就是学习各种规则。规则等于知识吗?

 

仅管每个驱动需要学习的规则不同,但是,还是却有一样的学习方式,我把这种学习方式称之为模具,本文就是描叙这个模具,目的是在自己将来编写驱动书籍时,就按照这个模具来编写书中的章节。

1. 硬件接口

     Pin Configuration    芯片的引脚外观图
     Pin Description       芯片引脚的作用
     Logic Connect        CPU和芯片的连接方式
     Block Diagram         芯片的内部逻辑结构
     Command Operations 操作芯片的命令
     AC Characteristics      访问芯片的时序

     编程向导

2. 协议描叙

3. 驱动实现

    Registers      寄存器的描叙

    具体代码分析

模具总共包含三个部份,依据驱动的情况不同,可以省略一些。

转载于:https://www.cnblogs.com/yfm1202/archive/2012/09/11/2679809.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java圆形进度条_可拖拽圆形进度条组件(支持移动端)

好久之前写过一个可拖拽圆形进度条的dome,中间有网友反馈过一些问题,最近比较闲有时间修改了一些问题也做了一些优化,并封装成组件,基于canvas实现,只需传入放置组件dom容器,任何框架均可直接使用&#xff…

java注解 interface_java @FunctionalInterface注解详解

下面要给大家介绍的就javaFunctionalInterface注解,对于FunctionalInterface注解不大了解的人,可以通过下面的文章来了解一下哦。在学习Lambda表达式的时候,假如,接口中只有一个抽象方法(可以包含多个默认方法或多个 static方法)&…

如何用python新建文件夹_用Python编写一个每天都在系统下新建一个文件夹的脚本...

这个程序的功能非常的简单,就是每天在系统中新建一个文件夹。文件夹即当前的时间。此代码是在同事那边看到的,为了锻炼下自己薄弱的Python能力,所以花时间重新写了一个。具体代码如下:import time,osbasePath F:\\work\\thisYear…

u盘无法复制文件进去_只需一招,禁止Windows复制文件到U盘,再也不用担心你的资料被拷走!...

现在,我们日常的生活和工作都是电脑全程陪伴,可以说是离不开电脑了。也正是因为电脑的功能那么多,而且在保存资料方面,相比纸质资料来讲,确实有十分大的优势!因此,有许多人都会将一些重要的个人…

ZOJ 3631 Watashi's BG

这道题思路不难,用01背包的思想来解这道题,一个M的背包装N个物品,这N个物品的权值和 体积都是vi,很简单的一个模型,直接用背包的方法解的话,不止会超内存,而且会超时,这 样WA了一遍之…

java word 饼图_[Java教程]echarts标准饼图解读(一)——基本配置demo

[Java教程]echarts标准饼图解读(一)——基本配置demo0 2016-11-21 17:00:18echarts标准饼图解读共分为四部分,一、基本配置demo二、标题(title)配置三、提示框(tooltip)配置四、图例(legend)配置五、系列列表(series )配置下面是一个基本配置demo,复制下…

常见音频接口详解

音频接口分为模拟和数字音频接口两种。模拟音频接口:(1)线路(LINE)接口:是视音频设备互联时使用最多的音频接口,分为专业设备线路接口和非专业设备线路接口。专业设备线路接口(平衡口…

postgres 禁止远程登录_Windows 7禁止可移动存储设备写入数据,只有想不到,没有做不到...

哈喽,今日头条的小伙伴们大家好,我是你们的好朋友IT咨询顾问。组策略是微软Windows NT家族操作系统的一个特性,它可以控制用户帐户和计算机帐户的工作环境。组策略提供了操作系统、应用程序和活动目录中用户设置的集中化管理和配置&#xff0…

java 分页 不 排序_java - 我应该如何将未分页但已排序的Pageable传递给Spring JPA存储库? - 堆栈内存溢出...

现在,我实现了自己的Pageable类,如下所示:import org.springframework.data.domain.Pageable;import org.springframework.data.domain.Sort;public class SortedUnpaged implements Pageable {private final Sort sort;private SortedUnpage…

java客户端重复请求_Java后台防止客户端重复请求、提交表单实现原理

Java后台防止客户端重复请求、提交表单实现原理发布于 2021-1-8|复制链接摘记: 这篇文章主要介绍了Java后台防止客户端重复请求、提交表单实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下前言在Web / Ap…

python生成yaml文件_Python实践34-读写yaml文件

关于yamlYAML语言的设计目标,就是方便人类读写。如果你想要实现一些用ini不好做到的配置,可以使用yaml格式作为配置文件大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。缩进的空格数目不重要,只要相同层级…

Module build failed (from ./node_modules/babel-loader/lib/index.js): Error: [BABEL] D:\moblie\web_co

原因: 出现错误是由于babel的版本冲,有两种解决方式: (1). babel-loader 8.x | babel 7.x (升级版本) npm install -D babel-loader babel/core babel/preset-env webpack (2). babel-loader 7.x | babel 6.x (降级版本) npm install -D…

qwt自定义时间标尺TimeScale

需要重载QwtScaleDraw类的virtual QwtText label(double)const;方法 该方法在需要绘制scale label时会调用。 主要思路是标尺上的点对应QDateTime::toTime_t()的值。然后重载label方法,在QwtText label(double v) const 方法中将参数v转化为QDateTime对象&#xff0…

二维数组排序 行与列分别升序_6个经典排序技巧,尤其是最后一个,绝对的个性化...

点击上方"Excel函数公式"免费订阅排序,从字面意思理解就是将一组“无序”的记录调整为“有序”的记录。在Excel中,排序是一种常见的操作,那么,如何高效的完成排序操作呢?一、Excel排序:常规(命令…

java平移变换_java移位运算符:(左移)、(带符号右移)和(无符号右移)。...

1、 左移运算符 左移运算符<<使指定值的所有位都左移规定的次数。 1)它的通用格式如下所示&#xff1a; value << num num 指定要移位值value 移动的位数。 左移的规则只记住一点&#xff1a;丢弃最高位&#xff0c;0补最低位 如果移动的位数超过了该类型的最大位数…