itop-3568开发板驱动学习笔记(26)设备树(五)中断实例分析

news2024/10/2 16:30:48

《【北京迅为】itop-3568开发板驱动开发指南.pdf》 学习笔记

文章目录

  • 中断控制器
  • 配置中断
  • 其他属性

中断控制器

设备树中的中断控制器节点和 GPIO 控制器类似,都是由芯片厂家编写,如果是外部中断,中断控制器和 GPIO 控制器是共存的,例如:

在这里插入图片描述

中断控制器中,#interrupt-cells 和 interrupt-controller 两个属性是必须存在的,

interrupt-controller 属性表示该节点是一个中断控制器,
#interrupt-cells 属性表示其他节点使用该中断控制器时需要几个参数来表示要使用的中断,

上面例子中 interrupts 属性用于指定中断控制器、中断号 及 中断触发方式,

GIC 是一个通用中断控制器(Generic Interrupt Controller),SPI 是中断类型,IRQ_TYPE_LEVEL_HIGH 表示中断触发方式。

中断类型包括:
SGI(Software-generated interrupt):范围0 - 15,软件触发的中断,一般用于核间通讯
PPI(Private processer interrupt): 范围16 - 31,私有外设中断,只对指定的core有效
SPI(Shared processer interrupt):范围32 - 1019,共享中断,不限定特定的core

SGI 在内核中通常叫做 IPI (Inter processer interrupt)

中断触发方式包括:

#define IRQ_TYPE_NONE            0
#define IRQ_TYPE_EDGE_RISING     1
#define IRQ_TYPE_EDGE_FALLING    2
#define IRQ_TYPE_EDGE_BOTH    (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING)
#define IRQ_TYPE_LEVEL_HIGH      4
#define IRQ_TYPE_LEVEL_LOW       8 

该控制器的 interrupts 属性之所以有三个参数,是因为 gic 中断控制器中 #interrupt-cells 属性值为 3,

在这里插入图片描述

配置中断

下面是 ft5x061 触摸屏芯片对应的设备树信息:

在这里插入图片描述

触摸屏用到了一个外部中断,对应的 pin 为 GPIO3_A5,设备树中用 interrupts-parent 和 interrupts 两个属性来指定设备使用的中断。

interrupts-parent 用于指定该节点需要用到的中断控制器,
interrupts 第一个参数为中断控制器 gpio3 中的中断号,第二个参数为中断触发方式,参数个数由中断控制器 gpio3 的 #interrupt-cells 属性值决定。

在上文的中断控制器介绍中,同样有 interrupts 属性,但却没有对应的 interrupts-parent,是不需要指定该属性吗?其实在设备树根节点下已经定义了该属性,又因为 gpio3 节点为根节点的子节点,所以 gpio3 会使用根节点的 interrupts-parent 属性。

在这里插入图片描述

其他属性

在 RK3568 设备树中,还能看到 interrupt-affinity 和 interrupt-names 两个属性,

interrupt-affinity 属性用来关联中断和 CPU core,例如:

在这里插入图片描述

interrupt-names 属性用于指定中断的名称,例如:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/544540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TDengine “亮相” ODSC East,开发者争相驻足交流

最近 TDengine 终于将时序数据技术创新这把火 烧到了美国波士顿 并获得了一众国外开发者的热捧 而这一次 TDengine 的成功落地 还得从两天前的一场数据大会说起... 波士顿当地时间 5 月 9 日,一场名为 ODSC East 的数据技术盛会在波士顿缓缓拉开序幕&#xff0…

YOLO V1-V3 简单介绍

目录 1. YOLO 2. YOLO V1 3. YOLO V2 4. YOLO V3 5. YOLO V3 SPP网络 5.1 Mosaic 图像增强 5.2 SPP 模块 5.3 CIou Loss 5.4 Focal loss 1. YOLO YOLO 是目标检测任务强大的算法,将目标检测的问题转换边界框和相关概率的回归问题,是目标检测…

【JAVA应届生如何提高职场竞争力】从蓝海走向红海的IT世界,新人如何掌握IT技能和找到合适的工作

从蓝海走向红海的IT世界,新人如何掌握IT技能和找到合适的工作。 在当前就业形势下,如何提高应届生在职场中的竞争力?具有哪些有效的方法和策略可供选择?这是一个备受关注的热点话题。哪些方面会对应届生的职场发展起到关键的推动和支撑作用呢? 前段时间有位CSDN的…

更高效便捷的开发体验——Cloud Studio 编辑器命令行工具

Cloud Studio 是一个云端在线开发平台,在 Cloud Studio 的控制台页面中,可以方便快捷创建或者打开一个工作空间。工作空间提供了在线编辑器给大家访问远端开发环境。大部分开发时间都与这个在线编辑器打交道,在线编辑器效果如下图所示&#x…

【刷题之路】LeetCode232——用栈实现队列

一、题目描述 原题链接:https://leetcode.cn/problems/implement-queue-using-stacks/ 题目描述: 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类…

深拷贝/浅拷贝精讲

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

Java 中Spring Security 是什么?如何使用

简介 Spring Security是一款基于Spring框架的安全框架,它提供了一系列的功能和API,用于保护Web应用程序和REST API的安全性。Spring Security可以提供身份验证、授权、加密和防止攻击等功能。它是Spring框架的一部分,可以与Spring框架无缝集…

Redis3种特殊数据结构详解

1、Bitmap位存储 Bitmap存储的是连续的二进制数字(0和1)。 你可以将Bitmap看作是一个存储二进制数字(0和1)的数组,数组中每个元素的下标叫做offset(偏移量)。 应用场景,需要保存状态…

​Cloud Studio 云端开发保障企业源代码安全

为什么需要保证 企业源代码安全 随着时代的发展,各行各业的企业或多或少都会与软件源代码打交道,借助软件系统更好地提升企业办公效率,而软件的源代码也自然成了一种企业新型资产。如何确保企业源代码不外泄,成为了各个企业特别关…

scau 拓扑排序

18734 拓扑排序 时间限制:1000MS 代码长度限制:10KB 提交次数:0 通过次数:0 题型: 编程题 语言: G;GCC Description 在经历.....之后,你打算好好学习下计算机专业的课程,避免面试过程中的各种尴尬场面。 计算机的专业课程间既有循序渐进的特点&…

解决方案 自动测试平台 通用测试平台

“通用测试平台”是针对测试保障所需研制的小型化、通用化、平台化综合保障设备。它采用可灵活扩展、剪裁和重构的开放式体系结构,支持用户对测试资源进行快速地剪裁或扩展,结合功能强大灵活的软件平台,能够支持多种被测件的测试和故障诊断。…

电赛E题声源定位跟踪系统制作全过程

声源定位 文章目录 声源定位前言一、题目二、设计步骤1.设计思路2.声源追踪定位的分析3.舵机转角的确定4.声源距离的计算 三、代码编写1.求均值2.卡尔曼滤波 复刻一下电赛的声源定位 前言 2023年的电子设计竞赛快要开始了,同时我也已经大三下了正在准备找工作&…

Mybatis之配置解析

目录 核心配置文件 environments(环境配置) properties(属性) typeAliases( 类型别名) 映射器 注解开发 Mybatis执行流程 核心配置文件 mybatis-config.xml configuration(配置) pr…

【STM32】STM32使用RFID读卡器

STM32使用RFID读卡器 RFID卡片 ID卡(身份标识):作用就是比如你要输入学号,你刷卡直接就相当于输入学号,省去了输入的过程 IC卡:集成电路卡,是将一种微电子芯片嵌入卡片之中 RFID的操作 1、…

【C++学习】模板初阶

目录 一、泛型编程 二、函数模板 2.1 函数模板概念 2.2 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 三、类模板 3.1 类模板的定义格式 3.2 类模板的实例化 一、泛型编程 我们前面学习了C的函数重载功能,那么我们如何实现…

低调的接口工具 ApiKit

最近发现一款接口测试工具--ApiKit,我们很难将它描述为一款接口管理工具 或 接口自测试工具。 官方给了一个简单的说明,更能说明 Apikit 可以做什么。 ApiKit API 管理 Mock 自动化测试 异常监控 团队协作 ApiKit的特点: 接口文档定义&a…

多层级缓存

多级缓存 多级缓存方案 多级缓存就是充分利用请求处理的每个环节,分别添加缓存,减轻Tomcat压力,提升服务器性能: 用作缓存的Nginx是业务Nginx,需要部署为集群,再有专门的Nginx用来做反向代理:…

ModStartCMS v6.4.0 模块市场升级,UI界面优化

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议,免费且不限制商业使用。 功能特性 丰富的模块市…

一文吃透 Vue 框架教程(上)

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

phpstorm+xdebug的安装与使用

工具和环境 phpstorm 2018 php5.6 线程安全 xdebug 1.下载和安装xdebug 1.1 查看自己phpinfo信息 比如我这里是php 5.6 ,线程安全版本 1.2 xdebug 官网 Xdebug: Historical Releases 根据自己的php版本选择要下载的dll文件 如果是高版本一点的php &#xff…