驱动学习之驱动体验

1:什么是linux驱动

    从本质上讲,驱动就是属于内核层面的程序代码,是直接和硬件打交道的。与裸机中直接操作寄存器去操作硬件的不同之处在于,裸机中操作的是物理内存,而我们在驱动中操作的是虚拟内存,驱动中还可以调用内核中提供的很多接口函数来简化我们操作硬件的过程。

2:linux设备驱动的分类

    根据设备本身的读写操作特征的差别,linux驱动主要分为三类

(1)字符设备驱动

    字符设备驱动的特点是软件在驱动设备是以字节为单位进行的,如LED、LCD、串口、蜂鸣器等

(2)块设备

    块设备是相对于字符设备类定义的,块设备的操作单位是块,每个块的字节大小是由硬件本身自己决定的,我们不能通过软件去修改,不同的块设备的块大小也可以不同。常见的块设备有硬盘、NandFlash、iNand、SD卡等

(3)网络设备

    网络设备是专门为网卡设计的驱动模型,linux中网络设备驱动的主要目的是为了支持API中socket相关的函数的工作。

3:怎么学习linux驱动

    (1)C语言是基础,驱动代码本身就是由C语言来编写的,所以C语言是学习驱动的基础

    (2)理解linux驱动框架,内核给我们驱动开发者提供了很多设备驱动的框架,而驱动开发者则在理解驱动框架的基础上去移植驱动,使之适合自己的产品。当然驱动框架只是一个驱动开发的一个标准,而非必须,驱动开发者也可以使用驱动框架去开发驱动


本文转自 菜鸟养成记 51CTO博客,原文链接:http://blog.51cto.com/11674570/1872401


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

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

相关文章

vim(三)golang代码跳转配

在golang的代码里跳来跳去。。。。 godef 安装 跳转是通过godef实现,godef的安装目录一般是$GOBIN,只要让godef命令在$PATH下即可 godef 命令安装: go get -v github.com/rogpeppe/godef go install -v github.com/rogpeppe/godef vim插件安装 ~/.vimrc配…

如何将iPhone或iPad更新到iOS 11

Apple released iOS 11 on September 19, 2017. You can upgrade by tapping “Install Now” when an update message appears, but you can also check for the update and install it immediately. 苹果于2017年9月19日发布了iOS11 。您可以通过在出现更新消息时点按“立即安…

三、Python-列表

三、Python-列表 一、序列:是一块用于存放多个值的连续内存空间,并且按一定顺序排列,可以通过索引取值索引:从左到右的索引从0开始依次增加的正整数;从右到左的索引为-1开始的复数切片(分片)&am…

使用基本ACL规则限制用户登录

要求:配置ACL 2005规则,限制vty 0 4界面只允许IP地址为192.168.1.8的用户和10.10.100.0/24网段的用户登录设备。 配置如下: system-view acl 2005 rule permit source 192.168.1.8 0 //允许IP地址为192.168.1.8的用户登录设备 rule permit s…

pandas 入门(2)

from pandas import Series, DataFrame, Index import numpy as np from numpy import nan as NAobj Series(range(3), index[a, b, c]) print(obj) index obj.index print(index) print(index[1:]) # index[1] d index对象时不可以被修改的 为了安全和共享index Index(n…

如何在Outlook 2013中管理附件

There comes a time, job-hunting, or sharing photos with older family members, where you may need to send stuff the old fashioned way – as an email attachment. If you email at work, it may be a part of your email repertoire. 有时需要找工作,与年长…

了解cron以及使用cron定时备份MySQL

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: /sbin/service crond start //启动服务 /sbin/service crond stop //关…

ef 并发控制

ef 并发控制 ef 并发控制 什么是并发?并发分悲观并发和乐观并发。悲观并发:比如有两个用户A,B,同时登录系统修改一个文档,如果A先进入修改,则系统会把该文档锁住,B就没办法打开了,只有等A修改完…

C#实现写入文本文件内容功能

private void write_txt(string str1, string str2, string str3)02{03System.DateTime currentTime System.DateTime.Now;04string strYMD currentTime.ToString("d");05string FILE_NAME "MyFileSend" strYMD ".txt";//每天按照日期建立一…

如何在Windows上设置BitLocker加密

BitLocker is a tool built into Windows that lets you encrypt an entire hard drive for enhanced security. Here’s how to set it up. BitLocker是Windows内置的工具,可用于加密整个硬盘驱动器以增强安全性。 设置方法如下。 When TrueCrypt controversially …

Java字节码方法表与属性表深度剖析

方法表: 在上一次咱们已经分析到了字段信息了,如下: 紧接着就是方法相关的信息了: 而它展开之后的结构为: 所以往后数2个字节,看一下方法的总数: 3个方法,可咱们只定义了两个方法呀&…

最大连续子数组和与JUnit测试

【题目】最大连续子数组和(最大子段和) 背景 问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]a[i1]…a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义…

笔记本电源适配器为什么总坏_为什么某些交流适配器和电源会发出啸叫声?

笔记本电源适配器为什么总坏Most of the time our AC adapters and power supplies tend to be quiet, but what does it mean when one makes a whining noise? Should you be concerned? Today’s SuperUser Q&A post has the answers to a worried reader’s question…

4412 字符类设备的设备号

一、静态申请字符类设备号 字符类设备函数在文件"include/linux/fs.h"中内核提供了三个函数来注册一组字符设备编号,这三个函数分别是 register_chrdev_region()alloc_chrdev_region()register_chrdev()register_chrdev_region()是提前知道设备的主次设备…

monogdb操作system.*权限

mongodb roles system.roles集合删不掉 当你自定义了特权(角色): db.createRole({role: "dropSystemViewsAnyDatabase",privileges: [{actions: [ "dropCollection" ],resource: { db: "", collection: "system.roles" }}],roles: []}…

如何发现假库存照片(并将合适的人归于属性)

Spammers and other unscrupulous advertisers are always looking for new ways to get you click on their pages. One of the latest tactics is to steal popular and useful stock images—like the kind you sometimes see in news articles—and re-upload them elsewhe…

Mysql Hunter

一、简介自动化实施的过程中,我们通常都面临一个棘手的问题:数据的准备和恢复。即在成功执行一个自动化用例时,我们可能需要一定的数据前提,而为了使得整个前提不至于被其他的用例破坏,以至于我们有时不得不在自动化用…

C6748_UART(5) - UART寄存器

1、FIFO控制寄存器(FCR)RXFIFTL:接收FIFO中断触发(当FIFO中的数据量刚到达所要求(trigger level)的时候会产生中断);DMAMODE1:如果FIFO使能的话此位可以使能DMA模式。TXCLR:发送FIFO清除。RXCLR&#xff1a…

如何在Windows 10上限制Wi​​ndows Update的下载带宽

Windows 10’s Fall Creators Update gives you more control of Windows Update’s downloads and uploads. You can now set a download bandwidth limit, ensuring Windows Update won’t hog your Internet connection with its background downloads. Windows 10的Fall Cr…

Elasticsearch嵌套查询

2019独角兽企业重金招聘Python工程师标准>>> 一、背景 最近在做基于宴会厅档期的商户搜索推荐时,如果用传统平铺式的mapping结构,无法满足需求场景,于是用到了Elasticsearch支持的Nested(嵌套)查询。 二、普通对象与嵌套对象的索引…