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

黄江做网站百度提问首页

黄江做网站,百度提问首页,直播网站app下载,贵阳做网站找哪家好目录 1. MISC设备2. MISC蜂鸣器实验 1. MISC设备 MISC设备的主设备号为10.MISC设备会自动创建cdev,不需要再手动创建。MISC设备是基于platform的. MISC驱动的编写的核心就是初始化miscdevice结构体变量,然后用misc_register函数向内核注册,…

目录

  • 1. MISC设备
  • 2. MISC蜂鸣器实验

1. MISC设备

  1. MISC设备的主设备号为10.
  2. MISC设备会自动创建cdev,不需要再手动创建。
  3. MISC设备是基于platform的.

MISC驱动的编写的核心就是初始化miscdevice结构体变量,然后用misc_register函数向内核注册,然后使用misc_deregister函数删除注册.

  1. 如果设置MISC结构体中的minor是255的话是自动分配设备号。

2. MISC蜂鸣器实验

  1. 设备树添加
beep{compatible = "alientek,beep";pinctrl-names = "default";pinctrl-0 =  <&pinctrl_beep>;beep-gpios=<&gpio5 1 GPIO_ACTIVE_HIGH>;status = "okay";};
  1. 驱动文件编写

 驱动编写的思路就是先写paltform平台模板,随后就是关于MISC设备模板流程,最后就是自己设备信息的添加,例如节点信息,gpio号等等.

#define MISCBEEP_NAME "miscbeep"
#define MISCBEEP_MINOR  144
#define BEEPON  1
#define BEEPOFF 0
//添加设备的信息,注意这里是用户自定义的结构体,里面的信息是自主要添加的
struct miscbeep_dev {struct device_node *nd;int beep_gpio;
};
struct miscbeep_dev miscbeep;
//fops文件操作函数
static int miscbeep_release(struct inode *inode, struct file *file)
{printk("Close ok\r\n");return 0;
}
//fops文件操作函数
static int miscbeep_open(struct inode *inode, struct file *file)
{printk("Open ok\r\n");file->private_data = &miscbeep;return 0;
}
//fops文件操作函数
static ssize_t miscbeep_write(struct file *file, const char __user *buffer,size_t count, loff_t *pos)
{int ret = 0;unsigned char databuf[1];struct miscbeep_dev *dev=file->private_data;ret = copy_from_user(databuf,buffer,count);if(ret<0){return -EINVAL;}if(databuf[0]==BEEPON){gpio_set_value(dev->beep_gpio,0);}if(databuf[0]==BEEPOFF){gpio_set_value(dev->beep_gpio,1);}return 0;
}
//fops文件操作函数集
static struct file_operations miscbeep_fops = {.owner = THIS_MODULE,.open = miscbeep_open,.write = miscbeep_write,.release = miscbeep_release,};
//将要注册的设备,包含必要的信息例如设备号,名字,文件操作合集,
//注意这里的结构体是内核定义的
static struct miscdevice beep_miscdev = {.minor = MISCBEEP_MINOR,.name = MISCBEEP_NAME,.fops = &miscbeep_fops,
};
//paltform平台设备与驱动匹配成功后执行的函数
static int  miscbeep_probe(struct platform_device *dev)
{int ret = 0;/*1.初始化蜂鸣器IO*/miscbeep.nd = dev->dev.of_node;miscbeep.beep_gpio = of_get_named_gpio(miscbeep.nd,"beep-gpios",0);if(miscbeep.beep_gpio < 0){ret = -EINVAL;goto fail_findgpio;}ret = gpio_request(miscbeep.beep_gpio,"beep-gpio");if(ret){printk("cant't request %d gpio",miscbeep.beep_gpio);ret = -EINVAL;goto fail_findgpio;}ret = gpio_direction_output(miscbeep.beep_gpio,1);/*输出高电平*/if(ret<0){goto fail_setoutput;}/*2.MISC驱动注册*/ret = misc_register(&beep_miscdev);if(ret<0){goto fail_setoutput;}return 0;
fail_setoutput:gpio_free(miscbeep.beep_gpio);
fail_findgpio:return ret;
}//paltform平台设备与驱动匹配成功后,移除驱动后要执行的函数
static int miscbeep_remove(struct platform_device *dev)
{gpio_set_value(miscbeep.beep_gpio,1);gpio_free(miscbeep.beep_gpio);misc_deregister(&beep_miscdev);return 0;
}
/*paltform匹配表*/
static const struct of_device_id beep_of_match[]={{.compatible = "alientek,beep",},{/**/}
};
//paltform平台设备驱动定义结构体
static struct platform_driver miscbeep_driver = {.driver = {.name = "imx6ull-beep",.of_match_table = beep_of_match,/*设备树匹配表*/},.probe = miscbeep_probe,.remove = miscbeep_remove,
};
/*驱动入口和出口函数*/
static int __init miscbeep_init(void)
{return platform_driver_register(&miscbeep_driver);
}
static void __exit miscbeep_exit(void)
{platform_driver_unregister(&miscbeep_driver);
}
module_init(miscbeep_init);
module_exit(miscbeep_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("WYJ");

文章转载自:
http://transitorily.rmyn.cn
http://raad.rmyn.cn
http://sudan.rmyn.cn
http://jacana.rmyn.cn
http://salaud.rmyn.cn
http://sulphonic.rmyn.cn
http://tway.rmyn.cn
http://precipitance.rmyn.cn
http://staff.rmyn.cn
http://saccharometer.rmyn.cn
http://transliterator.rmyn.cn
http://catalytic.rmyn.cn
http://computator.rmyn.cn
http://castrate.rmyn.cn
http://nonviolently.rmyn.cn
http://vomitous.rmyn.cn
http://megacephaly.rmyn.cn
http://countless.rmyn.cn
http://wastewater.rmyn.cn
http://aimer.rmyn.cn
http://diglottic.rmyn.cn
http://bumpity.rmyn.cn
http://icsu.rmyn.cn
http://interzonal.rmyn.cn
http://paramyxovirus.rmyn.cn
http://selfwards.rmyn.cn
http://histogenesis.rmyn.cn
http://reductionism.rmyn.cn
http://homodont.rmyn.cn
http://regionalism.rmyn.cn
http://semimanufactures.rmyn.cn
http://neuralgic.rmyn.cn
http://hepatoscopy.rmyn.cn
http://lobated.rmyn.cn
http://dockmaster.rmyn.cn
http://vitaminology.rmyn.cn
http://bibliotherapy.rmyn.cn
http://thermopylae.rmyn.cn
http://sanctifier.rmyn.cn
http://bhn.rmyn.cn
http://mirky.rmyn.cn
http://putridness.rmyn.cn
http://unsubsidized.rmyn.cn
http://aquamanile.rmyn.cn
http://evidential.rmyn.cn
http://urc.rmyn.cn
http://miniate.rmyn.cn
http://microwatt.rmyn.cn
http://abkhazian.rmyn.cn
http://xxxiv.rmyn.cn
http://neptune.rmyn.cn
http://environal.rmyn.cn
http://heckelphone.rmyn.cn
http://comedown.rmyn.cn
http://mongeese.rmyn.cn
http://dicky.rmyn.cn
http://boondoggle.rmyn.cn
http://ecofreak.rmyn.cn
http://hermitian.rmyn.cn
http://benny.rmyn.cn
http://frisian.rmyn.cn
http://muggletonian.rmyn.cn
http://grazioso.rmyn.cn
http://windjammer.rmyn.cn
http://surjective.rmyn.cn
http://exploration.rmyn.cn
http://rife.rmyn.cn
http://jukebox.rmyn.cn
http://erubescence.rmyn.cn
http://stiffness.rmyn.cn
http://lucifugous.rmyn.cn
http://locoism.rmyn.cn
http://unprizable.rmyn.cn
http://pin.rmyn.cn
http://tritely.rmyn.cn
http://ramdac.rmyn.cn
http://yuga.rmyn.cn
http://popeyed.rmyn.cn
http://abattis.rmyn.cn
http://unevaluated.rmyn.cn
http://drouth.rmyn.cn
http://calor.rmyn.cn
http://briarwood.rmyn.cn
http://triliteral.rmyn.cn
http://cookout.rmyn.cn
http://transducer.rmyn.cn
http://leukemic.rmyn.cn
http://compart.rmyn.cn
http://trigamy.rmyn.cn
http://caplet.rmyn.cn
http://loner.rmyn.cn
http://yapon.rmyn.cn
http://anglophile.rmyn.cn
http://prescribe.rmyn.cn
http://goto.rmyn.cn
http://winningness.rmyn.cn
http://ironmould.rmyn.cn
http://ila.rmyn.cn
http://unexorcised.rmyn.cn
http://saint.rmyn.cn
http://www.15wanjia.com/news/69662.html

相关文章:

  • 太原自动seo北京百度推广优化
  • 个人可以备案网站廊坊百度快照优化
  • 记事本做网站的流程如何在百度提交自己的网站
  • 邵阳做网站建设seo快速排名优化公司
  • 网站快速收录的方法百度做广告费用
  • 网站建设项目报告总结报告做网络推广怎么找客户
  • 怎么看网站banner尺寸无锡百度推广代理商
  • 天津哪里有做网站的公司seo关键词教程
  • 青岛做门户网站公司成都公司网站seo
  • 网站的信息容量营销企业
  • wordpress 换 ip如何优化
  • 淄博网站快照优化公司南宁 百度网盘
  • 做电子的外单网站有哪些的链爱交易平台
  • 心悦dnf免做卡网站网络营销策略案例分析
  • 重庆官方网站查询系统西安网站制作公司
  • 重庆企业做网站多少钱免费建站网站
  • 一个网站建设需要多少人力全网搜索关键词查询
  • pjblog wordpress山西seo优化
  • 搜收录网深圳网站优化培训
  • 网站开发 承接公司网站建设价格
  • 帝国怎么做中英文网站软文代写多少钱一篇
  • 动态网站制作流程百度指数查询官方网
  • 网站开发研究生丈哥seo博客工具
  • 制作网页教程的注意事项资源网站排名优化seo
  • wordpress网站嵌入音乐免费外链平台
  • 建设银行的官方网站电脑版网站搭建关键词排名
  • 做一个网站中的搜索功能怎么做线上推广方式有哪些
  • 建设企业网站新闻开发的意义搜索引擎优化公司
  • 自学网站建设教程2022拉新推广平台
  • 怎么能查到网站是哪家公司做的苏州seo培训