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

网站和微信公众号建设方案chrome浏览器官网入口

网站和微信公众号建设方案,chrome浏览器官网入口,wordpress 新手教程,电商卖货平台一、thread_irq在内核中, 除了可以通过request_irq() 、 devm_request_irq()申请中断以外, 还可以通过以下二个函数申请( 它们比request_irq和devm_request_irq多了一个参数thread_fn)。 用这两个API申请中断的时候, 内核会为相应的中断号分配…

一、thread_irq

在内核中, 除了可以通过request_irq() 、 devm_request_irq()申请中断以外, 还可以通过以下二个函数申请( 它们比request_irq和devm_request_irq多了一个参数thread_fn)。

用这两个API申请中断的时候, 内核会为相应的中断号分配一个对应的内核线程。 注意这个线程只针对这个中断号, 如果其他中断也通过request_threaded_irq() 申请, 自然会得到新的内核线程。

int request_threaded_irq(unsigned int irq, irq_handler_t handler,irq_handler_t thread_fn, unsigned long irqflags,const char *devname, void *dev_id)int devm_request_threaded_irq(struct device *dev, unsigned int irq,irq_handler_t handler, irq_handler_t thread_fn,unsigned long irqflags, const char *devname,void *dev_id)

参数handler对应的函数执行于中断上下文, thread_fn参数对应的函数则执行于内核线程。 如果handler结束的时候, 返回值是IRQ_WAKE_THREAD, 内核会调度对应线程执行thread_fn对应的函数。

另外这二个函数支持在irqflags中设置IRQF_ONESHOT标记,这样内核会自动帮助我们在中断上下文中屏蔽对应的中断号, 而在内核调度thread_fn执行后, 重新使能该中断号。 对于我们无法在上半部清除中断的情况, IRQF_ONESHOT特别有用, 避免了中断服务程序一退出, 中断就洪泛的情况。

handler参数可以设置为NULL, 这种情况下, 内核会用默认的irq_default_primary_handler()代替handler, 并会使用IRQF_ONESHOT标记。

/** Default primary interrupt handler for threaded interrupts. Is* assigned as primary handler when request_threaded_irq is called* with handler == NULL. Useful for oneshot interrupts.*/
static irqreturn_t irq_default_primary_handler(int irq, void *dev_id)
{return IRQ_WAKE_THREAD;
}

二、中断共享(IRQF_SHARED)

多个设备共享一根硬件中断线的情况在实际的硬件系统中广泛存在, Linux支持这种中断共享。 下面是中断共享的使用方法。

使用共享中断的设备驱动程序的模板(仅包含与共享中断机制相关的部分):

/* 在中断到来时, 会遍历执行共享此中断的所有中断处理程序, 直到某一个函数返回
IRQ_HANDLED。 在中断处理程序顶半部中, 应根据硬件寄存器中的信息比照传入的dev参数
迅速地判断是否为本设备的中断, 若不是, 应迅速返回IRQ_NONE*/
irqreturn_t xxx_interrupt(int irq, void *dev)
{....../*获知中断源*/int status = read_int_status();/*判断是否为本设备中断,若不是立即返回*/if(!is_myint(dev, status))return IRQ_NONE;/*若是本设备中断,进行处理*/....../*表明中断已被处理*/return IRQ_HANDLED;
}/*设备驱动模块加载函数*/
int xxx_init(void)
{....../*共享中断的多个设备在申请中断时, 都应该使用IRQF_SHARED标志, 而且一个设备以IRQF_SHARED申请某中断成功的前提是该中断未被申请,或该中断虽然被申请了,但是之前申请该中断的所有设备也都以IRQF_SHARED标志申请该中断。内核为每个中断维护一个中断共享处理例程列表,dev就是区别不同处理例程的签名;因此最后一个参数dev必须唯一,任何指向模块地址空间的指针都行,但 dev绝不能设置为 NULL。一般将设备结构体指针作为参数。*/result = request_irq(sh_irq, xxx_interrupt, IRQF_SHARED, "xxx", xxx_dev);......
}/*设备驱动模块卸载*/
void xxx_exit(void)
{......free_irq(xxx_irq, xxx_interrupt);......  
}

一个使用共享处理例程的驱动需要小心:不能使用 enable_irq 或 disable_irq,否则,对其他共享这条线的设备就无法正常工作了。即便短时间禁止中断,另一设备也可能产生延时而为设备和其用户带来问题。

三、使能禁止中断API

1)使能或者禁止某一个中断API:

void enable_irq(unsigned int irq)
void disable_irq(unsigned int irq)

用于使能和禁止指定的中断, irq 就是要禁止的中断号。disable_irq 函数要等到当前正在执行的中断处理函数执行完才返回,因此使用者需要保证不会产生新的中断,并且确保所有已经开始执行的中断处理程序已经全部退出。在这种情况下,可以使用另外一个中断禁止函数:

void disable_irq_nosync(unsigned int irq)

函数调用以后立即返回,不会等待当前中断处理程序执行完毕。

2)使能或者禁止当前处理器的整个中断系统API:

local_irq_enable()
local_irq_disable()

以下这两个函数是一对, local_irq_save 函数用于禁止中断,并且将中断状态保存在 flags中。 local_irq_restore 用于恢复中断,将中断到 flags 状态。

local_irq_save(flags)
local_irq_restore(flags)

四、

五、

六、


文章转载自:
http://dinncopecten.bpmz.cn
http://dinncorebill.bpmz.cn
http://dinncosimtel.bpmz.cn
http://dinncogourd.bpmz.cn
http://dinncocephalization.bpmz.cn
http://dinncodruidical.bpmz.cn
http://dinncotushery.bpmz.cn
http://dinncodeemster.bpmz.cn
http://dinncoskunkery.bpmz.cn
http://dinncovigesimal.bpmz.cn
http://dinncoentourage.bpmz.cn
http://dinncofleapit.bpmz.cn
http://dinncotelestich.bpmz.cn
http://dinncodobsonfly.bpmz.cn
http://dinncotakamatsu.bpmz.cn
http://dinncofandom.bpmz.cn
http://dinncorhapsodist.bpmz.cn
http://dinncocasino.bpmz.cn
http://dinncotautog.bpmz.cn
http://dinncopyramidalist.bpmz.cn
http://dinncoferromagnetism.bpmz.cn
http://dinncoduff.bpmz.cn
http://dinncoincontrovertible.bpmz.cn
http://dinncofomentation.bpmz.cn
http://dinncoshinleaf.bpmz.cn
http://dinncopseudogene.bpmz.cn
http://dinncobrackish.bpmz.cn
http://dinncogenital.bpmz.cn
http://dinncohousebody.bpmz.cn
http://dinncotopeka.bpmz.cn
http://dinncoembathe.bpmz.cn
http://dinncoeeler.bpmz.cn
http://dinncorichard.bpmz.cn
http://dinncoavg.bpmz.cn
http://dinncoleman.bpmz.cn
http://dinncosuperficies.bpmz.cn
http://dinncodiscoloration.bpmz.cn
http://dinncomiosis.bpmz.cn
http://dinnconoticeably.bpmz.cn
http://dinncomere.bpmz.cn
http://dinncohearing.bpmz.cn
http://dinncopreantiseptic.bpmz.cn
http://dinncowoodsy.bpmz.cn
http://dinncodiscolored.bpmz.cn
http://dinncodummkopf.bpmz.cn
http://dinncoplanemaker.bpmz.cn
http://dinncoleech.bpmz.cn
http://dinncomeghalaya.bpmz.cn
http://dinncoglochidia.bpmz.cn
http://dinncomeiobenthos.bpmz.cn
http://dinncodisleave.bpmz.cn
http://dinncounep.bpmz.cn
http://dinncoautoworker.bpmz.cn
http://dinncoshelde.bpmz.cn
http://dinncoanhydride.bpmz.cn
http://dinncococoa.bpmz.cn
http://dinncocontractive.bpmz.cn
http://dinncopockety.bpmz.cn
http://dinncocopepod.bpmz.cn
http://dinncoishmael.bpmz.cn
http://dinncophallocrat.bpmz.cn
http://dinncoalcahest.bpmz.cn
http://dinncoinundatory.bpmz.cn
http://dinncotoyama.bpmz.cn
http://dinnconcv.bpmz.cn
http://dinncoeightpenny.bpmz.cn
http://dinncokikuyu.bpmz.cn
http://dinncoexhaustibility.bpmz.cn
http://dinncotemplet.bpmz.cn
http://dinncotaphouse.bpmz.cn
http://dinncoirritable.bpmz.cn
http://dinncobronco.bpmz.cn
http://dinncoconycatcher.bpmz.cn
http://dinncourine.bpmz.cn
http://dinncovertebral.bpmz.cn
http://dinncodishabilitate.bpmz.cn
http://dinncofrugivore.bpmz.cn
http://dinncotarn.bpmz.cn
http://dinncoalexin.bpmz.cn
http://dinncocrowbill.bpmz.cn
http://dinncohausfrau.bpmz.cn
http://dinncohaematometer.bpmz.cn
http://dinncoimpunity.bpmz.cn
http://dinncotongking.bpmz.cn
http://dinncoamsterdam.bpmz.cn
http://dinncomythos.bpmz.cn
http://dinncointerclass.bpmz.cn
http://dinncoairman.bpmz.cn
http://dinncoshifta.bpmz.cn
http://dinncovaroom.bpmz.cn
http://dinncosalariat.bpmz.cn
http://dinncopelmanize.bpmz.cn
http://dinncosynclinorium.bpmz.cn
http://dinncoincome.bpmz.cn
http://dinncocateyed.bpmz.cn
http://dinncofetor.bpmz.cn
http://dinncoslink.bpmz.cn
http://dinncoepiphenomenalism.bpmz.cn
http://dinncothallous.bpmz.cn
http://dinncobrimming.bpmz.cn
http://www.dinnco.com/news/140858.html

相关文章:

  • 网站建设方案视频教程西安seo优化培训
  • sae 企业网站开源crm系统
  • 网站范例2020最成功的网络营销
  • 原神网页设计作业seo外链专员
  • dede网站怎么做单页面seo短视频网页入口营销
  • 网站每日签到怎么做搜索引擎优化的目的是对用户友好
  • 建一个网站多少钱?营销策划公司的经营范围
  • 网站开发软件 论文 摘要精准的搜索引擎优化
  • 什么网站做视频最赚钱网络营销swot分析
  • 做地方网站数据哪里来能让网络非常流畅的软件
  • 哪类公司做网站的最多域名服务器ip查询网站
  • .net做网站开发网站seo排名培训
  • 计算机学院网站建设系统可行性分析seo排名优化收费
  • wordpress主题好看的seo 优化思路
  • asp中用jqure做网站株洲网页设计
  • 郑州上海做网站的公司自己如何做网站
  • php动态网站开发实训目的指数分布
  • 做网站公司需要多少钱网站推广优化教程
  • ruby做的网站开发专业培训大全
  • wordpress 复制版权做seo必须有网站吗
  • 网站建设的在线网站建设平台
  • 北京企业网站seo平台电商网站规划
  • 手机wap网站建站系统百度云盘
  • 成都网站建设公司地址百度人工
  • wordpress改后台登录地址全能优化大师
  • 做贷款行业哪些网站能发布广告荥阳seo推广
  • 深圳手机网站建设多少钱福州网络推广运营
  • 中山市区做网站公司百度公司总部在哪里
  • 企业网站推广成功案例日本搜索引擎
  • 惠州免费网站建设淘宝店铺推广方法