我是靠谱客的博主 干净篮球,最近开发中收集的这篇文章主要介绍内核驱动编程------一个模块包含多个中断线资源,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前段时间在新平台上写一个自定义的驱动模块,里面包含多个中断线, 在编写驱动的时候找device tree里面定义和驱动程序中获取中断资源的

api选择上花了点时间。


device tree 里面一个节点有多个中断线,定义方式:

interrupts = <0 29 1>, <0 30 1>, <0 32 1>;

这里第三个参数表示的是中断触发方式, 但是实际调试时, 虽然这里设置了,但是没有真正起作用, 这真起作用的地方是在request_irq(...)

第三个参数决定的。


如果模块中只有单一中断线, 则获取中断资源的api一般可用

platform_get_resource(...)

对于我遇到的有多个中断线的情况则不行, 后面查的可用

irq_of_parse_and_map(struct device_node *dev,  int index)

index这个参数是个序号, 和device tree 里面 interrupts属性里面定义的中断线对应(第一个资源对应的index是0, 紧接着是1, 以此类推)。


最后

以上就是干净篮球为你收集整理的内核驱动编程------一个模块包含多个中断线资源的全部内容,希望文章能够帮你解决内核驱动编程------一个模块包含多个中断线资源所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部