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

江苏手机网站建设美橙互联网站建设进不去

江苏手机网站建设,美橙互联网站建设进不去,免费ppt下载网,企业电商网站开发版权声明#xff1a;本文为博主原创文章#xff0c;未经博主允许不得转载。 目录(?)[-] 1 什么是中断2中断处理程序3中断服务例程4request_irq函数分析 1. 什么是中断 简单来说中断就是硬件设备与处理器的一种交流方式#xff0c;比如当我按下一个键时#xff0c;只有当处… 版权声明本文为博主原创文章未经博主允许不得转载。 目录(?)[-] 1 什么是中断2中断处理程序3中断服务例程4request_irq函数分析 1. 什么是中断 简单来说中断就是硬件设备与处理器的一种交流方式比如当我按下一个键时只有当处理器知道我按下了这个键并且做出相应的处理时按键这个操作才是有效的。我们知道处理器的速度远远高于外围设备的速度处理器与外设选择合适的交流方式就格外重要。轮询是一种方式这种方式是内核周期性地对设备状态进行查询并作出相应的的动作但这种方式会让内核做大量的无用功这显然是不明智的。更好的方式是让外设在其需要的时候向内核发送信号这就是中断机制。 2.中断处理程序 当一个中断发生时内核应该有相应的处理方法这个方法就是中断处理程序一个中断处理程序对应一个中断号。中断处理程序是管理硬件的驱动程序的一部分如果设备需要中断相应的设备驱动程序就需注册中断处理程序。注册方式使用request_irq()函数 intrequest_irq(unsigned int irq, irqreturn_t (*handler)(int, void *, struct pt_regs *),unsigned long irqflags, const char * devname, void *dev_id) 函数参数  irq表示要分配的中断号  handler函数指针指向中断的实际中断处理函数  irqflags中断处理程序的标志举例来说 IRQF_DISABLED被设置后内核在处理中断处理程序本身期间要禁止所有的其他中断。  devname与中断相关的设备的ASCII文本表示  dev_id:用于共享中断线当一个中断处理程序需要释放时dev_id提供唯一的标志信息。 3.中断服务例程 一条中断线对应一个中断一个中断处理程序而多个设备可能共享一条中断线那么如何让中断处理程序为不同的设备提供不同的处理方法。这就引出了中断服务例程。一个中断处理程序对应若干个中断服务例程。 中断处理程序就相当于某个中断向量的总的处理程序比如IRQ0x09_interrupt()是中断号为9的总处理程序假如这个9号中断由5个设备共享那么这5个设备都分别有其对应的中断服务例程。也就是说当有多个设备需要共享某个中断线时中断处理程序必须要调用ISR此时会调用handle_IRQ_event() 4.request_irq函数分析 intrequest_irq(unsigned int irq, irqreturn_t (*handler)(int, void *, struct pt_regs *), unsigned long irqflags, const char * devname, void *dev_id){ int retval; struct irqaction * action; if (irq ACTUAL_NR_IRQS) //中断号是否超过最大值 return -EINVAL; if (!handler) //函数指针是否为空 return -EINVAL;#if 1 /* * Sanity-check: shared interrupts should REALLY pass in * a real dev-ID, otherwise well have trouble later trying * to figure out which interrupt is which (messes up the * interrupt freeing logic etc). */ if ((irqflags SA_SHIRQ) !dev_id) { //若中断共享但dev_id为NULL则出错 printk(KERN_ERR Bad boy: %s (at %p) called us without a dev_id!\n, devname, __builtin_return_address(0)); }#endif action (struct irqaction *) kmalloc(sizeof(struct irqaction), GFP_KERNEL); //创建irqaction结构体 if (!action) return -ENOMEM; action-handler handler; //将函数参数传给结构体 action-flags irqflags; cpus_clear(action-mask); action-name devname; action-next NULL; action-dev_id dev_id;#ifdef CONFIG_SMP select_smp_affinity(irq);#endif retval setup_irq(irq, action); //注册中断irqaction结构体 if (retval) kfree(action); return retval;} struct irqaction { irqreturn_t (*handler)(int, void *, struct pt_regs *);//具体的中断服务例程 unsigned long flags;//一组中断标志 cpumask_t mask; const char *name;//中断设备名称 void *dev_id;指定设备的主设备号和次设备号 struct irqaction *next;//指向共享中断线的下一个 irqaction结构体 int irq;//申请的中断号 struct proc_dir_entry *dir;};
http://www.yutouwan.com/news/268318/

相关文章:

  • 网站尺寸大小桂林 门户网站
  • 网站开发技术流程中英文的网站开发
  • 做网站优惠北京网页设计培训
  • 南宁建站服务公司设计师接私单
  • 网站宣传方法c 2015 做网站
  • 南昌网站建设设计焦作网站建设设计公司
  • 网站做推广需要多少钱电子商务网站建设调查问卷
  • 上海建设工程学校网站网站建设ppt模板下载
  • windows和linux 做网站广州专业网站建设哪家公司好
  • 广州网站定制开发公司哪家好郑州网站建设郑州网站建设七彩科技
  • 网站开发工具需求wordpress配置七牛cdn
  • 成都广告公司招聘广告制作安装seo外包服务优化
  • 红衫中国网站建设手机表白网站在线制作
  • 江苏集团网站建设自己可以建个免费网站吗
  • 建设网站需要准备什么电子商务网站建设的一般过程
  • 网站建设软件是什么意思权威的顺德网站建设
  • 网站建设php教程视频做一份完整的网站规划书
  • 做网站流量是什么自动化培训机构排名
  • 横琴建设局网站成都网站建设技术外包
  • 网站开发工程师好吗淘宝网站建设教程视频教程
  • 专题类的网站网站设计建设,网络营销推广
  • 网站域名如何申请网页简单制作流程
  • 锡林郭勒盟建设工程造价信息管理网站企业主题展厅设计公司
  • 网站建设学什么语音做爰全过程免费的视频凤凰网站
  • ps如何做网站横幅网页制作技术有哪些
  • 学校文化建设聚奇网站轻网站怎么建立
  • 中国建设银行网站-个人客户建设银行网站用户名是什么
  • 网站推广有哪些公司可以做百度商桥可以在两个网站放
  • 图片展示网站织梦源码网页美工设计岗前培训
  • 重庆集团公司网站建设搜索的网站后大拇指分享数量不见了