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

网站建设 合肥公司网站制作的公司

网站建设 合肥,公司网站制作的公司,冠县网站建设公司,seo解释一、驱动流程 驱动需要以下几个步骤才能完成对硬件的访问和操作#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/19051.html

相关文章:

  • 将一个网站拉入黑名单怎么做视觉设计网站有哪些
  • 推进网站建设工作计划株洲网站建设设计
  • 青岛建网站公司哪家专业手机中国手机大全
  • 女与男做那个的视频网站设计竞赛网
  • 上海大型网站制作公购买域名网
  • 关键词排名优化网站贷款超市网站开发
  • 中山建设网站公司Wordpress吃内存怎么办
  • pc 手机站网站制作窦各庄网站建设
  • 广州做服装电商拿货的网站城乡厅建设部网站
  • 长春网站优化seo软件技术专业月薪多少
  • 使用mvs2010做网站网页版传奇单职业
  • 昆明旅游网站建设本周实时热点新闻事件
  • 腾讯网站不忘初心 继续前进网站怎么做
  • 温岭市住房和城乡建设局网站企业网站建站企业
  • 网站源码上传安装包百容千域可以免费做网站吗
  • 如何知道网站用什么程序做的网站文章编辑器代码
  • 免费自己做网站吗wordpress调用栏目
  • 电商网站怎么做支付网站建设服务中企动力
  • 做网站 聊城网站seo排名培训
  • 做网站公司汉狮团队用flex做的网站
  • 企业网站建设时优化关键词的问题中小型网站建设
  • 可信网站认证服务商如何设计营销型网站建设
  • 邢台推广网站建设电话深圳网站域名
  • 做网站后台怎么弄网址例子
  • 上海做网站设计的公司google 网站突然一条收录也没有
  • 电影网站制作模版wordpress搭建cms网站
  • 免费外链网站软件开发专业技能怎么写
  • 网站开发定制方案上海做网站推广公司
  • 东莞设计网站推荐南宁手机建站模板
  • php开源建站系统sem和seo