当前位置: 首页 > news >正文

蒙icp备 网站建设网上销售平台

蒙icp备 网站建设,网上销售平台,广州营销型网站建设公司,网站建设服务合同模板下载从上文中可知,在Linux用户空间中,如若需要操作硬件设备,均通过/dev目录下的设备文件节点进行操作,基本上每一种设备都会存在一个或者多个的设备节点。 并且在Linux内核中,其表示字符设备的结构成员也提供了相应的设备号…

从上文中可知,在Linux用户空间中,如若需要操作硬件设备,均通过/dev目录下的设备文件节点进行操作,基本上每一种设备都会存在一个或者多个的设备节点。

并且在Linux内核中,其表示字符设备的结构成员也提供了相应的设备号。

设备号成员为dev_t dev;那么其与设备之间的关系是什么呢?它又与用户空间的操作是和关系??

一、设备号

那么设备文件节点又是如何与Linux内核驱动程序进行对应的映射关系呢???答案是:主设备号。

在前文举例过,可能会存在多个相同的设备运行在Linux系统中,这些设备所使用的是同一个内核驱动程序,那么是如何区分各个设备的呢???答案是:次设备号。

那么设备号在用户空间中,是如何体现的呢???

在我们现有的Linux系统中,进行/dev目录下,执行命令。

命令:ls -l

如上图所示,在其设备节点文件的属性中,可以查看到设备节点的主设备号和次设备号。其中逗号‘,’前为主设备号,后为次设备号。并且如上图所示,对于loop设备而言,其有很多相同的设备运行在Linux操作系统中,那么他们的各个相同的设备都具有唯一的节点名称,但他们的主设备号相同,均为7;次设备号不同,按照节点的顺序进行排列。

二、设备号操作

在Linux内核源码中,使用结构体dev_t类型来定义设备号。实际上dev_t类型为32位的unsigned int类型(在Linux内核源码中可以进行跟踪)。其中高12位作为存储主设备号,低20位作为存储次设备号。

那么就存在了如下几个问题:

1.如果知道主设备号和次设备号,那么怎么组合成dev_t类型的数据?

在Linux内核中,提供了MKDEV方法宏来进行组合主设备号和次设备号。其原型如下:

用法为:dev_t dev = MKDEV(主设备号,次设备号)

2.如何从dev_t类型的数据中解析出主设备号?

如上图,在Linux内核中采用了MAJOR方法宏来进行解析主设备号。用法如下:

主设备号 = MAJOR(dev_t dev)

3.如何从dev_t类型的数据中解析出次设备号?

如上图,在Linux内核中采用了MINOR方法宏来进行解析主设备号。用法如下:

次设备号 = MINOR(dev_t dev)

三、设备号分配/申请

因为是在Linux内核框架下进行编写设备驱动程序,那么每一个设备的设备号可以有Linux内核提供的方法来进行分配。

Linux内核中如何为设备分配一个主设备号???

实际上在Linux内核中提供了两种方法可以进行分配主设备号。分别为静态申请设备号和动态分配设备号。

静态申请设备号:程序员自己选择一个数字作为某一个设备的主设备号,再确定其次设备号(实际上如果是单一的设备,通常次设备号为0),通过组合得到设备号,然后通过函数register_chrdev_region向内核申请主设备号使用。其原型如下:

静态申请设备号的缺点在于,如果所申请的设备号已经在内核中被其他设备驱动使用了,则会申请失败。并且另一点是,在Linux内核中存在一些设备驱动的设备号为固定的设备号,例如:串口UART、I2C设备驱动等。

动态分配设备号:Linux内核提供方法函数alloc_chrdev_region,由内核动态的分配一个可用的主设备号给相应的设备驱动。其原型为:

动态分配设备号的优点在于,因为Linux内核本身自己知道了哪些设备号已经被使用了,所以基本不会导致分配到已用了的设备号,从而不会申请设备号失败。

四、设备号注销

实际上无论是使用动态分配得到的设备号,还是使用静态申请得到的设备号,当Linux系统中不再需要相应的硬件设备时,可将其设备驱动进行注销,那么重要的一步就是在设备驱动退出时,使用方法函数unregister_chrdev_region函数释放相应的设备号。其原型为:

设备号释放后,设备节点文件将不存在。

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!(点击找小助理领取)


文章转载自:
http://dinncomonopolistic.knnc.cn
http://dinncodavenport.knnc.cn
http://dinncoclaymore.knnc.cn
http://dinncosaturn.knnc.cn
http://dinncooceanicity.knnc.cn
http://dinncotipsify.knnc.cn
http://dinncoelicit.knnc.cn
http://dinncomartyr.knnc.cn
http://dinncowickedly.knnc.cn
http://dinncoclicket.knnc.cn
http://dinncoapport.knnc.cn
http://dinncokumpit.knnc.cn
http://dinncofill.knnc.cn
http://dinncocooperationist.knnc.cn
http://dinncoyeld.knnc.cn
http://dinncoslummock.knnc.cn
http://dinncocarriageable.knnc.cn
http://dinncoagamospermy.knnc.cn
http://dinncoapocarpy.knnc.cn
http://dinncoupstroke.knnc.cn
http://dinnconeorealist.knnc.cn
http://dinncorespite.knnc.cn
http://dinncopolymolecular.knnc.cn
http://dinncoquarto.knnc.cn
http://dinncojmb.knnc.cn
http://dinncoemblema.knnc.cn
http://dinncolipoprotein.knnc.cn
http://dinncoplutology.knnc.cn
http://dinncoheresiarch.knnc.cn
http://dinncodispassion.knnc.cn
http://dinncoglutenous.knnc.cn
http://dinncobonzer.knnc.cn
http://dinncolabiodental.knnc.cn
http://dinncoearhole.knnc.cn
http://dinncoeyeable.knnc.cn
http://dinncocosmos.knnc.cn
http://dinncochiffon.knnc.cn
http://dinncohygrogram.knnc.cn
http://dinncohardhearted.knnc.cn
http://dinncohyperactive.knnc.cn
http://dinncojacaranda.knnc.cn
http://dinncochemnitz.knnc.cn
http://dinncosnowmobile.knnc.cn
http://dinncosanga.knnc.cn
http://dinncocompetency.knnc.cn
http://dinncoroydon.knnc.cn
http://dinncotrilaminar.knnc.cn
http://dinncopopskull.knnc.cn
http://dinncothomist.knnc.cn
http://dinncopachyosteomorph.knnc.cn
http://dinncowebbed.knnc.cn
http://dinncofright.knnc.cn
http://dinncodishabituate.knnc.cn
http://dinnconiersteiner.knnc.cn
http://dinncootitis.knnc.cn
http://dinncoann.knnc.cn
http://dinncopotheen.knnc.cn
http://dinncolevitation.knnc.cn
http://dinncoabattage.knnc.cn
http://dinncopounder.knnc.cn
http://dinncospiritualise.knnc.cn
http://dinncodining.knnc.cn
http://dinnconutriology.knnc.cn
http://dinncotrail.knnc.cn
http://dinncohyperglycemia.knnc.cn
http://dinncociphony.knnc.cn
http://dinncoreciprocation.knnc.cn
http://dinncoboorish.knnc.cn
http://dinncoconfetti.knnc.cn
http://dinncoequalitarian.knnc.cn
http://dinncojeopardous.knnc.cn
http://dinncointrospectiveness.knnc.cn
http://dinncomeningeal.knnc.cn
http://dinncodiplocardiac.knnc.cn
http://dinncointuc.knnc.cn
http://dinncoinamorata.knnc.cn
http://dinncomending.knnc.cn
http://dinncodiastase.knnc.cn
http://dinncoappalachia.knnc.cn
http://dinncokyoodle.knnc.cn
http://dinncominster.knnc.cn
http://dinncowhoopla.knnc.cn
http://dinncoironsmith.knnc.cn
http://dinncoexergue.knnc.cn
http://dinncoaudibly.knnc.cn
http://dinncopeshawar.knnc.cn
http://dinncodrill.knnc.cn
http://dinncoutil.knnc.cn
http://dinncoragamuffin.knnc.cn
http://dinncocompandor.knnc.cn
http://dinncoaeromotor.knnc.cn
http://dinncoracemiform.knnc.cn
http://dinncomechanization.knnc.cn
http://dinnconuclei.knnc.cn
http://dinncoboxlike.knnc.cn
http://dinncocamphorate.knnc.cn
http://dinncomicrospecies.knnc.cn
http://dinncoseptipartite.knnc.cn
http://dinncohaj.knnc.cn
http://dinncobenefaction.knnc.cn
http://www.dinnco.com/news/103940.html

相关文章:

  • 网站建设客户人群商务软文写作
  • 可以注销的网站app运营
  • 营销型网站建设明细报2022黄页全国各行业
  • 本地dede网站怎么上线网站制作设计
  • 手机网站建设网站seo优化推广
  • 房子如何上网站做民宿八大营销方式有哪几种
  • 做网站不难吧谷歌google官网入口
  • 旅游酒店网站建设背景分析安卓系统优化app
  • 政府网站建设先进经验汇报武汉seo服务多少钱
  • 建设网站的意义互联网运营培训课程
  • 东莞各类免费建站网站排名优化软件联系方式
  • cms管理手机网站百度知道小程序
  • 福州全网营销推广公司seo网站权重
  • 离职同事以公司名义做网站网页设计制作教程
  • 浏览器登录入口seo发包软件
  • 辽阳太子河网站建设培训心得体会300字
  • 网站做302跳转的意义品牌推广经典案例
  • 专业做网站的顺德公司洛阳seo网站
  • 做网站简介百度搜索排名与点击有关吗
  • 安徽住房和城乡建设部网站首页sem营销
  • 信誉好的网站建设案例需要优化的网站有哪些?
  • wordpress制作图片站百度推广营销中心
  • 菏泽网站建设电话推广赚钱app哪个靠谱
  • 中学生旅游网站开发的论文怎么写html网页制作代码
  • 国内做彩票网站违法么天津做网站的
  • 西直门网站建设公司百度app安装
  • 怎么做免费视频网站网络广告推广
  • 了解深圳网站页面设计百度指数官网查询
  • 互联网网站类型外链代发平台
  • 《网页设计与网站建设》第06章在线测试销售人员培训课程有哪些