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

网站建设 合肥投资网站开发

网站建设 合肥,投资网站开发,电子商务网站项目建设阶段的划分,网站开发开题报告一、驱动流程 驱动需要以下几个步骤才能完成对硬件的访问和操作#xff1a; 模块加载函数 module_init注册主次设备号 应用程序通过设备号找到设备驱动设备文件 应用程序访问驱动的方式 1、手动创建 #xff08;mknod#xff09;2、程序自动创建file_oper…一、驱动流程 驱动需要以下几个步骤才能完成对硬件的访问和操作 模块加载函数 module_init注册主次设备号 应用程序通过设备号找到设备驱动设备文件 应用程序访问驱动的方式 1、手动创建 mknod2、程序自动创建file_operations 驱动对硬件的读、写、释放等模块卸载函数 module_exit 二、举例详解 #include linux/module.h // module_init module_exit #include linux/init.h // __init __exit #include linux/fs.h#define MYMAJOR 200 #define MYNAME LED_DEVICE//int (*open) (struct inode *, struct file *);//open函数的格式是上面的格式static int led_dev_open(struct inode *inode, struct file *file){printk(KERN_INFO led_dev_open open\n); }//release函数的原型是int (*release) (struct inode *, struct file *);static int led_dev_closestruct inode *inode, struct file *file {printk(KERN_INFO led_dev_close close\n); }static const struct file_operations led_dev_fops{.opne led_dev_open,.release led_dev_close, }static int __init leddev_init(void) {int ret -1;printk(KERN_INFO leddev_init);ret register_chrdev(MYMAJOR, MYNAME, led_dev_fops);if(ret) {printk(KERN_ERR led devices rigister failed);retunt -EINVAL;}printk(KERN_INFO led regist sucess);return 0; }static int __exit leddev_exit(void) {printfk(KERN_INFO led device exit);unregister_chrdev(MYMAJOR, NAME) }module_init(leddev_init);module_exit(leddev_exit);// MODULE_xxx这种宏作用是用来添加模块描述信息 MODULE_LICENSE(GPL); // 描述模块的许可证 MODULE_AUTHOR(bhc); // 描述模块的作者 MODULE_DESCRIPTION(led test); // 描述模块的介绍信息 MODULE_ALIAS(alias xxx); // 描述模块的别名信息注 通过对驱动的流程进行分析以上代码中缺少对设备节点的创建也就是说上边的代码应用程序是没有方法进行访问和操作的这时我们可以通过手动的方式进行处理即使用mknod进行创建 应用调用驱动是通过驱动设备文件来调用驱动的我们首先要用mknod /dev/xxx c 主设备号 次设备号 命令来创建驱动设备文件 安装好驱动以后主设备号可以在/proc/devices文件中查看但是由于不同的设备主设备号占用的不一样有时候需要系统来自动分配 主设备号这个如何实现呢 我们可以在register_chrdev函数的major变量传参0进去因为这个函数的返回值为主设备号所以我们定义一个全局变量来接受这个值即可 static int mymajor;//注册的时候mymajor register_chrdev(0, MYNAME, ded_dev_fops); # 返回的是自动分配的主设备号//释放的时候unregister_chrdev(mymajor, MYNAME);这样即可 register_chrdevmajor, name, struct file_openrations # 注册设备号缺点是只能注册主设备号 unregister_chrdevmajor, name # 注销设备号
http://www.dnsts.com.cn/news/234262.html

相关文章:

  • 虚拟主机做网站教程炫彩发光字制作网站
  • 可以做动效的网站事业单位门户网站建设
  • 郑州高端网站定制企业解决方案ppt10页
  • 寻找锦州网站建设wordpress个人保险主题
  • 静态网站htmlwordpress怎么发布文章带图片
  • 网站的前端用什么语言网站怎么在微博推广
  • 福田做网站的公司杭州市建设工程招标
  • 自适应网站模板源码信息流广告投放平台有哪些
  • 专业网站建北京专业做网站的公司
  • 网站建设与微信公众号绑定自动成交型网站建设
  • 制作网站哪家便宜全国企业征信系统查询平台
  • 网站建设现在市场大不大gooood谷德设计网站
  • 苏州制作网站的公司大街网企业招聘官网
  • 网站平台方案生成图片链接的网站
  • 静态单页网站wordpress濮阳网站建设熊掌号
  • 爱采购seo天津网站优化软件
  • 易语言网站建设2018做网站开发一个月工资多少
  • 度更新网站企业简介模板ppt
  • 查询系统网站模板网站论坛 备案
  • 6免费网站建站建设主管部门网站查询
  • 延庆免费网站建设超级折扣2WordPress
  • TP5.1做的网站首页被挂马原因关于小学网站建设的论文
  • 有什么专门搜试卷做的网站wordpress建站动画
  • 网站建设的公司哪家强2021最新域名没被封的
  • 大兴网站开发网站建设价格一键登录
  • 旅游网站有哪些功能常州集团网站建设
  • 建设银行对公打不开网站痘痘如何去除效果好
  • 杭州免费网站建站模板wordpress客户端开发
  • 广州市公共资源交易中心官网合肥百度推广排名优化
  • 网站建设基础培训企业概况的内容