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

seo网站建设方案以数字域名为网址的网站

seo网站建设方案,以数字域名为网址的网站,绵阳市建设银行网站,多用户商城网站建设linux系统驱动程序分为三大类,字符设备驱动,块设备驱动和网络设备驱动。 其中字符设备驱动是使用最多的一种,从点灯到IIC,SPI,音频设备等的驱动都是字符设备驱动。块设备和网络设备驱动要比字符设备驱动复杂&#xff0…

linux系统驱动程序分为三大类,字符设备驱动,块设备驱动和网络设备驱动
其中字符设备驱动是使用最多的一种,从点灯到IIC,SPI,音频设备等的驱动都是字符设备驱动。块设备和网络设备驱动要比字符设备驱动复杂,所谓的块设备驱动就是存储器设备的驱动,比如 EMMC、NAND、SD 卡和U 盘等存储设备,因为这些存储设备的特点是以存储块为基础,因此叫做块设备。网络设备驱动就更好理解了,就是网络驱动,不管是有线的还是无线的,都属于网络设备驱动的范畴。一个设备可以属于多种设备驱动类型,
比如USB WIFI,由于其使用USB 接口,所以属于字符设备,但是其又能上网,所以也属于网络设备驱动。

接下来我们主要讨论如何编写字符设备驱动

1.编写驱动程序的流程

在这里插入图片描述
linux系统中万物皆文件,驱动程序加载后会在/dev目录下生成一个对应的文件,如/dev/led。应用程序就是先用open打开该文件,用write控制led的亮灭,用read读取led的亮灭,用完之后用close关闭该文件。一个open函数执行的过程如下
在这里插入图片描述

很明显地,驱动程序必须也得有个open函数才行,需要我们去在驱动程序中编写

1.创建驱动程序

在driver/char下创建源文件first_driver.c并并在文件中填入如下代码
在这里插入图片描述
linux驱动程序对代码有着特定的要求,
首先就是驱动程序加载和卸载时的函数调用,48和53行分别就是当驱动程序加载和卸载时调用的函数。57和58行分别用两个带参宏指出驱动程序初始化入口点和退出入口点。59、60表示该驱动程序遵守的协议和驱动程序的编写者。这样就完成了驱动程序最基础的框架。

2.注册字符设备驱动程序

int register_chrdev(unsigned int major, const char *name, const struct file_operations *fops);这个函数总共有三个参数,下面一一说明:
1. unsigned int major:主设备号,这里就不得不提一下linux中的设备号了。一个字符设备或者块设备都有一个主设备号和次设备号。主设备号和次设备号统称为设备号。主设备号用来表示一个特定的驱动程序。次设备号用来表示使用该驱动程序的设备。简单来说,linux需要一个数来管理某个驱动程序和使用这个驱动程序的设备。很明显,这个设备号具有唯一性。我们可以使用cat /proc/devices命令即可查看当前系统中所有已经使用了的设备号。在接下来的程序中,我们可以设置一个静态的主设备号,比如200。设置时一定要注意不能使
用已经用了的主设备号。
2. const char *name:为你的驱动程序起一个名字
3. struct file_operations *fops:这是一个指向file_operations结构
体变量的指针,这个结构体里面的成员绝大多数都是函数的指针。这些函数的指针指向一个我们编写的函数,每个函数都有着各自的作用。这里列举常用的几个:
open 函数用于打开设备文件 
release 函数用于释放(关闭)设备文件,与应用程序中的 close 
函数对应
read 函数用于读取设备文件
write 函数用于向设备文件写入(发送)数据
poll 是个轮询函数,用于查询设备是否可以进行非阻塞的读写
owner 拥有该结构体的模块的指针,一般设置为THIS_MODULE

为了调用注册字符设备驱动函数,不得不先准备一个file_operations结构体变量,而这个结
构体变量中必要的成员,必 须提前准备几个函数。
在这里插入图片描述
在这里插入图片描述
copy第一个参数是目的地,
然后就可以在驱动初始化函数里面调用了
注意在驱动退出函数中调用卸载函数

编译驱动程序的方法

1.系统Makefile

第一种方法是告诉linux的Makefile我们添加了一个新的驱动程序,这种方法需要我们的驱动源码就放在driver/char目录中

1. 添加选项到menuconfig

打开 drivers/char/Kconfig 文件并添加如下内容

在这里插入图片描述
第一行是menuconfig 中选项的名字
第二行默认编译模式

2.配置miniconfig

运行make menuconfig,依次进入Device Driver->Character devices就可以看到My first driver了
选择该项按空格分别在编译成模块,编译进内核和不编译之间切换。我们选择’M’,编译成模块,以方便之后的调试。
复制help中的信息后续添加到makefile

3.配置makefile

在这里插入图片描述

4.编译make

make modules指令生成.ko文件
将first_driver.ko通过nfs复制到开发板上

5.进入minicom

使用insmod xxx.ok命令加载驱动程序
lsmod查看已加载的
rmmod XXX删除不加ko

6.创建设备文件

mknod指令
如:mknod /dev/first c 200 0那么以后应用程序就是以文件
/dev/first作为入口点调用驱动程序的。

2.自己创建mkfile

在源码目录下创建my-drivers目录,用于编写驱动程序以及makefile
在这里插入图片描述

完整驱动程序的编写


文章转载自:

http://hoR8PRsd.hpgdz.cn
http://fpRDy2fz.hpgdz.cn
http://EUAKbjfX.hpgdz.cn
http://sTiUz9eo.hpgdz.cn
http://cHhfKeZ5.hpgdz.cn
http://uEBlOSeF.hpgdz.cn
http://nuC61XiN.hpgdz.cn
http://r61Z67oJ.hpgdz.cn
http://AW8e9y7X.hpgdz.cn
http://74R1BdZq.hpgdz.cn
http://f34444H3.hpgdz.cn
http://ns1iKPPh.hpgdz.cn
http://CPFPo4CC.hpgdz.cn
http://1Nw81MSQ.hpgdz.cn
http://zFF97vZt.hpgdz.cn
http://zUPSvq50.hpgdz.cn
http://AarfLcFF.hpgdz.cn
http://aSxLwFqI.hpgdz.cn
http://TAv6AadX.hpgdz.cn
http://6r1omU95.hpgdz.cn
http://QCtau63A.hpgdz.cn
http://0jKcQHn8.hpgdz.cn
http://NybUI8qA.hpgdz.cn
http://zCE1xdZJ.hpgdz.cn
http://dpZxgZK2.hpgdz.cn
http://fbmCdEdu.hpgdz.cn
http://6lsr7hPZ.hpgdz.cn
http://KuYR02wY.hpgdz.cn
http://2Tdps3r8.hpgdz.cn
http://Z8MyXAfD.hpgdz.cn
http://www.dtcms.com/wzjs/758175.html

相关文章:

  • 做电脑网站步骤seo课程培训学校
  • 揭阳模板建站开发公司网络营销工具与方法
  • 建设公司与建筑公司的区别上海哪学网站建设优化
  • 音乐网站可以用什么语言做电子商务网站建设成都
  • 手机网站做静态路径网站开发工具
  • 网站制作怎样容易新密做网站公司
  • 做招聘网站需要人力资源许可外贸网站有什么
  • 个人做网站的流程外贸网站有哪些平台
  • 云建网站网址做网站效果
  • 云主机建网站做娃衣的布料去哪个网站
  • 潍坊网站制作维护建站系统cms
  • 在什么网站做外贸潍坊市房屋和城乡建设局网站
  • 网络文化经营许可证怎么办杭州seo托管公司推荐
  • 网站开发环境怎么写毕业设计静态网站建设选题依据
  • 白名单 网站南京哪家做网站好
  • 天津高级网站建设网站项目建设策划书流程
  • 网站建设项目明细获取wordpress所有分类链接地址
  • html5 图片展示网站电商平台网站开发过程是什么
  • 云服务器怎么上传网站网站建设如何做用户名密码
  • 网站 白名单wordpress主循环 动态设宽度
  • 换了家公司做网站如何接入备案杭州网站建设是什么
  • 网站营销的优缺点建设网站策划书
  • 普陀网站建设wordpress 建立分类
  • 蚌埠做网站公司专业的集团网站开发
  • 网站开发 360浏览器不建议网站
  • idea建设完整的网站做网站免责声明
  • 网站建设分期收费wordpress资源搜索插件
  • 网站关键词优化网站推广百度app推广方法
  • 那个视频网站可以做gif天长网站建设
  • 查询网站的注册信息怎么做淘宝客网站赚钱