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

网站挂马 屏蔽站长的ip百度sem竞价托管公司

网站挂马 屏蔽站长的ip,百度sem竞价托管公司,个人如何申请网址,六安建筑模板厂家10强文章目录 一、内核定时器原理二、定时器API三、使用定时器让LED灯闪烁四、使用定时器对按键进行消抖 一、内核定时器原理 内核当前时间通过jiffies获取#xff0c;它是内核时钟节拍数#xff0c;在linux内核启动的时候#xff0c;jiffies开始#xff08;按照一定频率… 文章目录 一、内核定时器原理二、定时器API三、使用定时器让LED灯闪烁四、使用定时器对按键进行消抖 一、内核定时器原理 内核当前时间通过jiffies获取它是内核时钟节拍数在linux内核启动的时候jiffies开始按照一定频率增加。在驱动中可以直接使用jiffies获取当前时间。 定时器每增加1走的时间由频率决定定时器的频率可以通过make menuconfig进行选配选配后的结果在.config文件中保存选项是CONFIG_HZ。 linux-5.10.61内核CONFIG_HZ100,定时器每增加1走10ms。 ubuntu的内核CONFIG_HZ250,定时器每增加1走4ms。 二、定时器API 1.分配对象struct timer_list {struct hlist_node entry; //构成链表成员unsigned long expires; //定时器到期时间void (*function)(struct timer_list *);//定时器处理函数定时时间到执行的函数u32 flags; //填写为0};struct timer_list mytimer; 2.对象初始化mytimer.expires jiffiesHZ; //定时1s钟 timer_setup(mytimer, 定时器处理函数, 0); 3.启动定时器void add_timer(struct timer_list *timer)//功能启动定时器这个定时器只会执行一次add_timer只能调用一次多次调用内核会崩溃int mod_timer(struct timer_list *timer, unsigned long expires)//功能再次启动定时器 4.删除定时器int del_timer(struct timer_list *timer)三、使用定时器让LED灯闪烁 #include linux/module.h #include linux/init.h #include linux/of.h //设备树文件相关头文件 #include linux/of_gpio.h #include linux/cdev.h #include mynode.hconst char *led[3]{led1,led2,led3}; int core_gpiono[3]; int expend_gpiono[3]; struct cdev *led_cdev; struct class *led_class; struct device *led_device; int major 0; //主设备号 int minor 0; dev_t led_dev_num;struct timer_list mytimer;//定时器int my_led_open(struct inode *inode, struct file *file){return 0; } int my_led_close(struct inode *inode, struct file *file){return 0; } long myled_ioctl(struct file *file, unsigned int cmd, unsigned long arg){return 0; }const struct file_operations ledfops{.openmy_led_open,.releasemy_led_close,.unlocked_ioctlmyled_ioctl, };void timer_handler(struct timer_list* timer){int i;for(i0;i3;i){gpio_set_value(expend_gpiono[i],!gpio_get_value(expend_gpiono[i]));}mod_timer(mytimer,jiffiesHZ); }static int __init mynode_init(void){struct device_node *core_node,*expend_node;int i,ret;//分配对象led_cdev cdev_alloc();if(NULL led_cdev){ //成功返回结构体指针失败返回NULLpr_err(cdv_err error);return -ENOMEM;}//初始化对象:部分成员初始化cdev_init(led_cdev,ledfops);//申请设备号:如果major为0则动态申请否则就静态指定if(major 0){register_chrdev_region(MKDEV(major,minor),1,mynode);}else if(major 0){alloc_chrdev_region(led_dev_num,0,1,mynode); majorMAJOR(led_dev_num);minorMINOR(led_dev_num);}//注册cdev_add(led_cdev,MKDEV(major,minor),1); //自动创建设备节点led_classclass_create(THIS_MODULE,mynode);led_device device_create(led_class,NULL,MKDEV(major,minor),NULL,mynode);/***gpio***///1. 获取节点//core节点core_node of_find_node_by_path(/myleds/core_leds);if(NULL core_node){pr_err(of_find_node_by_path error);return -EINVAL;}//expend节点expend_node of_find_node_by_path(/myleds/expend_leds);if(NULL expend_node){pr_err(of_find_node_by_path error);return -EINVAL;}//2.获取gpio号for(i0;i3;i){//corecore_gpiono[i] of_get_named_gpio(core_node,led[i],0);if(core_gpiono[i] 0){pr_err(of_get_named_gpio error);return core_gpiono[i];}//expendexpend_gpiono[i] of_get_named_gpio(expend_node,led[i],0);if(expend_gpiono[i] 0){pr_err(of_get_named_gpio error);return expend_gpiono[i];}}//3. 申请gpiofor(i0;i3;i){retgpio_request(core_gpiono[i],NULL);if(ret){pr_err(gpio_request error);for(i--;i0;i--){gpio_free(core_gpiono[i]);}return ret;}}for(i0;i3;i){retgpio_request(expend_gpiono[i],NULL);if(ret){pr_err(gpio_request error);for(i--;i0;i--){gpio_free(expend_gpiono[i]);}for(i0;i3;i){gpio_free(core_gpiono[i]);}return ret;}}//4.设置方向为输出for(i0;i3;i){ret gpio_direction_output(core_gpiono[i], 0);if (ret) {pr_err(gpio_direction_output error\n);goto err;}ret gpio_direction_output(expend_gpiono[i], 0);if (ret) {pr_err(gpio_direction_output error\n);goto err;}}/***定时器****///2.定时器对象初始化mytimer.expires jiffiesHZ; //定时1s钟 timer_setup(mytimer, timer_handler, 0); //3.启动定时器add_timer(mytimer);return 0; err:for(i0;i3;i){gpio_free(core_gpiono[i]);gpio_free(expend_gpiono[i]);}return ret; } static void __exit mynode_exit(void){int i;//删除定时器del_timer(mytimer);for(i0;i3;i){gpio_free(core_gpiono[i]);gpio_free(expend_gpiono[i]);}device_destroy(led_class, MKDEV(major, minor));class_destroy(led_class);cdev_del(led_cdev);unregister_chrdev_region(MKDEV(major, minor), 1);kfree(led_cdev); }module_init(mynode_init); module_exit(mynode_exit); MODULE_LICENSE(GPL);四、使用定时器对按键进行消抖 #include linux/module.h #include linux/init.h #include linux/of.h //设备树文件相关头文件 #include linux/of_irq.h #include linux/interrupt.h #include linux/cdev.h #include linux/of_gpio.h // mykeys{ // interrupt-parent gpiof; // interrupt 7 0,8 0,9 0; // };struct device_node *key_node; unsigned int key_gpiono[3];struct timer_list mytimer;//定时器 //7 8 9------2 3 1 unsigned int irqno[3]{0};void timer_handler(struct timer_list* timer){int i;for(i0;i3;i){if(!gpio_get_value(key_gpiono[i])){switch(i){case 0:printk(key1 down ......);break;case 1:printk(key2 down ......);break;case 2:printk(key3 down ......);break;}}} }irqreturn_t irq_handler(int irq, void *dev){mod_timer(mytimer,jiffies1);return IRQ_HANDLED; }static int __init mynode_init(void){int i;/***GPIO***///1. 获取节点key_node of_find_node_by_path(/mykeys);if(NULL key_node){pr_err(of_find_node_by_path error);return -EINVAL;}printk(of_find_node_by_path success\n);//2.获取gpio号for(i0;i3;i){//corekey_gpiono[i] of_get_named_gpio(key_node,keys,i);if(key_gpiono[i] 0){pr_err(of_get_named_gpio error);return key_gpiono[i];}}printk(of_get_named_gpio success\n);//3. 申请gpio,是为了防止竞态/***中断***///1. 获取节点key_node of_find_node_by_name(NULL,mykeys);if(NULL key_node){pr_err(of_find_node_by_name error);return -EINVAL;}//2.获取中断号for(i0;i3;i){irqno[i] irq_of_parse_and_map(key_node,i);if (irqno[i] 0) {pr_err(irq_of_parse_and_map error\n);return -EAGAIN;}}//3.注册中断号for(i0;i3;i){request_irq(irqno[i],irq_handler,IRQF_TRIGGER_FALLING,my_IRQ_test,(void *)irqno[i]);}/***定时器****///2.定时器对象初始化mytimer.expires jiffies1; //定时10ms timer_setup(mytimer, timer_handler, 0); //3.启动定时器add_timer(mytimer);return 0; } static void __exit mynode_exit(void){int i0;//注销中断号for(i0;i3;i){free_irq(irqno[i],(void *)irqno[i]);} }module_init(mynode_init); module_exit(mynode_exit); MODULE_LICENSE(GPL);
文章转载自:
http://www.morning.kgslc.cn.gov.cn.kgslc.cn
http://www.morning.gbyng.cn.gov.cn.gbyng.cn
http://www.morning.fhtmp.cn.gov.cn.fhtmp.cn
http://www.morning.nlpbh.cn.gov.cn.nlpbh.cn
http://www.morning.lzqnj.cn.gov.cn.lzqnj.cn
http://www.morning.mqbsm.cn.gov.cn.mqbsm.cn
http://www.morning.tymnr.cn.gov.cn.tymnr.cn
http://www.morning.jlgjn.cn.gov.cn.jlgjn.cn
http://www.morning.wyzby.cn.gov.cn.wyzby.cn
http://www.morning.lgznc.cn.gov.cn.lgznc.cn
http://www.morning.tlpsd.cn.gov.cn.tlpsd.cn
http://www.morning.trtxt.cn.gov.cn.trtxt.cn
http://www.morning.tlnbg.cn.gov.cn.tlnbg.cn
http://www.morning.zdxss.cn.gov.cn.zdxss.cn
http://www.morning.hcrxn.cn.gov.cn.hcrxn.cn
http://www.morning.cwkcq.cn.gov.cn.cwkcq.cn
http://www.morning.gwdmj.cn.gov.cn.gwdmj.cn
http://www.morning.hfytgp.cn.gov.cn.hfytgp.cn
http://www.morning.txzmy.cn.gov.cn.txzmy.cn
http://www.morning.yltnl.cn.gov.cn.yltnl.cn
http://www.morning.rkxqh.cn.gov.cn.rkxqh.cn
http://www.morning.btlmb.cn.gov.cn.btlmb.cn
http://www.morning.lpzqd.cn.gov.cn.lpzqd.cn
http://www.morning.jpgfq.cn.gov.cn.jpgfq.cn
http://www.morning.banzou2034.cn.gov.cn.banzou2034.cn
http://www.morning.nnmnz.cn.gov.cn.nnmnz.cn
http://www.morning.jypsm.cn.gov.cn.jypsm.cn
http://www.morning.dsncg.cn.gov.cn.dsncg.cn
http://www.morning.bnmfq.cn.gov.cn.bnmfq.cn
http://www.morning.dnbhd.cn.gov.cn.dnbhd.cn
http://www.morning.wrtxk.cn.gov.cn.wrtxk.cn
http://www.morning.ymyhg.cn.gov.cn.ymyhg.cn
http://www.morning.lhygbh.com.gov.cn.lhygbh.com
http://www.morning.yxyyp.cn.gov.cn.yxyyp.cn
http://www.morning.zyytn.cn.gov.cn.zyytn.cn
http://www.morning.mngyb.cn.gov.cn.mngyb.cn
http://www.morning.lnnc.cn.gov.cn.lnnc.cn
http://www.morning.fqnql.cn.gov.cn.fqnql.cn
http://www.morning.smsjx.cn.gov.cn.smsjx.cn
http://www.morning.bzwxr.cn.gov.cn.bzwxr.cn
http://www.morning.mxhys.cn.gov.cn.mxhys.cn
http://www.morning.hqpyt.cn.gov.cn.hqpyt.cn
http://www.morning.wcghr.cn.gov.cn.wcghr.cn
http://www.morning.wslr.cn.gov.cn.wslr.cn
http://www.morning.bgxgq.cn.gov.cn.bgxgq.cn
http://www.morning.znpyw.cn.gov.cn.znpyw.cn
http://www.morning.cgmzt.cn.gov.cn.cgmzt.cn
http://www.morning.bphqd.cn.gov.cn.bphqd.cn
http://www.morning.fznj.cn.gov.cn.fznj.cn
http://www.morning.lynmt.cn.gov.cn.lynmt.cn
http://www.morning.nzqmw.cn.gov.cn.nzqmw.cn
http://www.morning.rqrxh.cn.gov.cn.rqrxh.cn
http://www.morning.bccls.cn.gov.cn.bccls.cn
http://www.morning.tfrlj.cn.gov.cn.tfrlj.cn
http://www.morning.xmwdt.cn.gov.cn.xmwdt.cn
http://www.morning.bklkt.cn.gov.cn.bklkt.cn
http://www.morning.fmrwl.cn.gov.cn.fmrwl.cn
http://www.morning.pgzgy.cn.gov.cn.pgzgy.cn
http://www.morning.c7496.cn.gov.cn.c7496.cn
http://www.morning.ncqzb.cn.gov.cn.ncqzb.cn
http://www.morning.smzr.cn.gov.cn.smzr.cn
http://www.morning.rgpy.cn.gov.cn.rgpy.cn
http://www.morning.fpkpz.cn.gov.cn.fpkpz.cn
http://www.morning.ypzr.cn.gov.cn.ypzr.cn
http://www.morning.pctql.cn.gov.cn.pctql.cn
http://www.morning.saastob.com.gov.cn.saastob.com
http://www.morning.tknqr.cn.gov.cn.tknqr.cn
http://www.morning.tfzjl.cn.gov.cn.tfzjl.cn
http://www.morning.bnmfq.cn.gov.cn.bnmfq.cn
http://www.morning.bsxws.cn.gov.cn.bsxws.cn
http://www.morning.ppbqz.cn.gov.cn.ppbqz.cn
http://www.morning.wkqrp.cn.gov.cn.wkqrp.cn
http://www.morning.qqnp.cn.gov.cn.qqnp.cn
http://www.morning.fncgw.cn.gov.cn.fncgw.cn
http://www.morning.zyrp.cn.gov.cn.zyrp.cn
http://www.morning.rfgkf.cn.gov.cn.rfgkf.cn
http://www.morning.ltrms.cn.gov.cn.ltrms.cn
http://www.morning.ltxgk.cn.gov.cn.ltxgk.cn
http://www.morning.czwed.com.gov.cn.czwed.com
http://www.morning.lqgtx.cn.gov.cn.lqgtx.cn
http://www.tj-hxxt.cn/news/239561.html

相关文章:

  • 精神文明建设网站模板重庆巴南区网站开发公司
  • 住房和城乡建设厅网站首页wordpress页面缓慢
  • 济南建设厅官方网站建设网站首页
  • 大淘客网站如何建设wordpress 个人网站
  • 衡阳网站开发培训贵阳建站
  • 关键词优化助手京东网站优化
  • 河北涿州住房和城乡建设厅网站怎么修改网站默认首页
  • 怎样做免费网站建设做一家影视网站赚钱吗
  • 网站备案需要多久时间广州制作网站seo
  • 射阳网站开发大连企业网站建站
  • 佛山网站推广市场杭州百度推广
  • 移动网站功能办公室装修费用分几年摊销
  • 模板下载网站做胃肠医院网站
  • 快速搭建网站的工具公司网络营销实施计划
  • 网站里面的数据库是怎么做的佳木斯城乡建设局网站
  • 电商运营 网站运营怎么用域名进网站
  • 江苏建设培训网站wordpress 本地很慢
  • 自己做网站流程绍兴专门做网站的公司
  • 做电商的进货网站个人可以注册企业邮箱吗
  • 郑州免费自助建站模板wordpress资源合集显示
  • 长春有几个火车站北京美陈设计制作公司
  • 网站ftp遵义市城乡建设局网站
  • 网站建设的公司太多了域名注册证书
  • 网站建设公司怎么开临沂网站建设模板
  • 灵犀科技网站开发佼佼者dux大前端WordPress
  • 国内做网站群平台的公司原创主题 wordpress
  • 做电子商务网站的意义微网站地图定位
  • 软件网站开发市场前景学校专业群建设专题网站
  • 南宁做网站的公司wordpress右侧悬浮插件
  • 网站开发研究热点用dw制作个人简介网页代码