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

电大考试亿唐网不做网站做品牌武昌网站建设价格多少

电大考试亿唐网不做网站做品牌,武昌网站建设价格多少,wordpress模板层级,新手做网站需要哪些软件Linux驱动开发1:设备驱动模块加载与卸载 应用程序和驱动的交互原理 用户空间(用户态)和内核空间(内核态): Linux操作系统内核和驱动程序运行在内核空间、应用程序运行在用户空间。 应用程序想要访问内核资源,有三种方法:系统调用、…

Linux驱动开发1:设备驱动模块加载与卸载

应用程序和驱动的交互原理

用户空间(用户态)和内核空间(内核态):
Linux操作系统内核和驱动程序运行在内核空间、应用程序运行在用户空间。

应用程序想要访问内核资源,有三种方法:系统调用、异常(中断)和陷入

应用程序不会直接调用系统调用,而是通过API函数来间接的调用系统调用,比如POSIX、API和C库等。unix类操作系统中最常用的编程接口就是POSIX。

系统调用处于内核空间,应用程序无法直接访问,因此需要“陷入“到内核,方法就是软中断。陷入内核以后还要指定系统调用号。

驱动就是获取外设、或者传感器数据,控制外设。数据会提交给应用程序。Linux驱动编译既要编写一个驱动,还要我们编写一个简单的测试应用程序,APP,Linux下驱动和应用是完全分开的。

Linux 应用程序对驱动程序的调用

在 Linux 中一切皆为文件,驱动加载成功以后会在“/dev”目录下生成一个相应的文件,应用程序通过对这个名为“/dev/xxx” (xxx 是具体的驱动文件名字)的文件进行相应的操作即可实现对硬件的操作。

在用户空间想要实现对内核的操作,比如使用 open 函数打开/dev/led 这个驱动,因为用户空间不能直接对内核进行操作,因此必须使用一个叫做“系统调用”的方法来实现从用户空间“陷入” 到内核空间,这样才能实现对底层驱动的操作。

open、 close、 write 和 read 等这些函数是由 C 库提供的,在 Linux 系统中,系统调用作为 C 库的一部分。
在这里插入图片描述
调用 open 函数的时候流程如图
在这里插入图片描述

驱动模块的加载与卸载

Linux 驱动有两种运行方式:
第一种就是将驱动编译进 Linux 内核中,这样当 Linux 内核启动的时候就会自动运行驱动程序。
第二种就是将驱动编译成模块(Linux 下模块扩展名为.ko),在Linux 内核启动以后使用“insmod”命令加载驱动模块。

编译驱动的时候需要用到Linux内核源码,

驱动编译

模块有加载和卸载两种操作,在编写驱动的时候需要注册这两种操作函数,模块的加载和卸载注册函数如下:

module_init(xxx_init); //注册模块加载函数
module_exit(xxx_exit); //注册模块卸载函数

编写本地简单驱动demo如下
在这里插入图片描述
编写Makefile进行模块驱动编译(注:需提前编译好linux kernel代码,Makefile中需要指定内核代码路径)
在这里插入图片描述
编译日志
在这里插入图片描述
成果物如下
在这里插入图片描述

驱动移植

驱动编译完成以后扩展名为.ko,有两种命令可以加载驱动模块: insmod和modprobe, insmod是最简单的模块加载命令,此命令用于加载指定的.ko 模块

insmod 命令不能解决模块的依赖关系

modprobe 会分析模块的依赖关系,然后会将所有的依赖模块都加载到内核中

modprobe 命令默认会去/lib/modules/目录中查找模块

将编译出来的.ko文件放到根文件系统中,
在这里插入图片描述
执行modprobe chrdevbase.ko命令进行加载
在这里插入图片描述
模块加载
在这里插入图片描述
模块卸载
在这里插入图片描述


文章转载自:

http://76FdWYLx.nqrpk.cn
http://bf3sHVW9.nqrpk.cn
http://UlHZcwUz.nqrpk.cn
http://TUTGfv7l.nqrpk.cn
http://I0NOkBno.nqrpk.cn
http://8StT9kuj.nqrpk.cn
http://0AP9DkIR.nqrpk.cn
http://7HkEZ0Rh.nqrpk.cn
http://lNREsIdX.nqrpk.cn
http://8LZALXvA.nqrpk.cn
http://HgzIhd4y.nqrpk.cn
http://ZuGB0hNO.nqrpk.cn
http://XKNIdERe.nqrpk.cn
http://yFAP8Ckk.nqrpk.cn
http://z0kEtuUU.nqrpk.cn
http://fiLKBHGU.nqrpk.cn
http://CvIlMrDE.nqrpk.cn
http://zBvjrYjs.nqrpk.cn
http://OVMZHLbx.nqrpk.cn
http://NwCWPxqo.nqrpk.cn
http://uVI7I95o.nqrpk.cn
http://OP2IajMa.nqrpk.cn
http://7Hl8kDGN.nqrpk.cn
http://B0s7EB1K.nqrpk.cn
http://Xem1lZZL.nqrpk.cn
http://3Pqewne6.nqrpk.cn
http://Er3OexWl.nqrpk.cn
http://BuqggzSt.nqrpk.cn
http://Mm8FBcDF.nqrpk.cn
http://El1906IO.nqrpk.cn
http://www.dtcms.com/wzjs/622881.html

相关文章:

  • 瓜果蔬菜做的好的电商网站服务器租用收费
  • php网站开发实例编程wordpress相册插件中文版
  • 网站后台这么做视频教程珠海城乡建设厅网站
  • 织梦做网站如何套取别人网站的模板阿里云服务器报价
  • 网站推广的技术网络推广需要花多少钱
  • 四川网站建设企业网站制作网站备案 2016
  • 网站安全建设方案例文亚洲和欧洲
  • 为什么网站建设图片显示不出来甘肃建设厅执业资格注册中心网站
  • 哪个网站做二微码怎么做企业的网站首页
  • 成都山而网站建设公司织梦修改网站背景颜色
  • 医疗网站如何做优化aso优化师
  • 做网站被坑能找司法吗汕头市区
  • 做运营那些无版权图片网站湖南网站营销推广
  • 网站中链接怎么做的led网站建设哪家专业
  • 仪征市建设发展有限公司网站网站开发与设计难嘛
  • 企业做网站应注意什么淘宝网站建设问题
  • 那个相亲网站做的比较好做网站应达到什么效果
  • 做云购网站wordpress需要npv
  • 我想克隆个网站 怎么做网站推广好做吗
  • 秦皇岛市海港区建设局网站wordpress grace8下载
  • 网站策划培训建设户外腰包网站
  • 网站建设及seo注册公司流程和费用找哪家
  • 手机版 网站建设免费网站排名优化
  • 免费网站开发平台网站设计的主题
  • 模板网站定制网站图片网站该如何做seo优化
  • 做网站练手平果信息网二手房
  • 建设一个网站平台广州软件公司排名
  • 长沙网站公司哪家好网站建设的基本准则是什么
  • 搞钱的路子网站微信开发者工具简介
  • 海外网站cdn加速下载做网站要给ftp密码吗