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

ARM体系结构和接口技术(十)按键中断实验①

一、按键中断实验

在这里插入图片描述

(一)分析按键电路图

在这里插入图片描述

(二)芯片手册

二、按键中断实验分析

  • 注:NVIC----Cortx-M核
  • GIC----Cortx-A核

(一)查看所有外设的总线以及寄存器基地址

在这里插入图片描述

  • 注:GIC的总线是A7核的内部总线,也就是说,它是由ARM公司完成的

在这里插入图片描述

  • 注:EXTI的时钟源无需手动使能,它一直是使能状态

(二)RCC章节

在这里插入图片描述

(三)GPIO章节

(四)EXTI:扩展中断控制器

扩展中断和事件控制器(EXTI)通过可配置和直接的事件输入来管理单个CPU和系统唤醒。它为电源控制提供唤醒请求,并向CPU的NVIC生成中断请求以及向CPU的事件输入生成事件。对于每个CPU,需要一个额外的事件生成块(EVG)来生成CPU事件信号。
EXTI唤醒请求允许系统从STOP模式唤醒,并且允许CPU从CSTOP和CSTANDBY模式唤醒。
中断请求和事件请求生成也可以在RUN模式下使用。
EXTI还包括EXTI多路复用I/O端口选择。

EXTI由通过AHB接口访问的寄存器块、事件输入触发块、屏蔽块和EXTI多路复用器组成。
寄存器块包含所有EXTI寄存器。
事件输入触发块提供事件输入边沿触发逻辑。
屏蔽块提供事件输入到不同唤醒、中断和事件输出的分配,以及这些输出的屏蔽功能。
EXTI多路复用器为EXTI事件信号提供I/O端口选择。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其中,CPU1代表MPU(主处理器单元),而CPU2代表MCU(微控制器单元)。

1. EXTI多路复用IO端口选择

在这里插入图片描述

1. EXTI_FTSR1寄存器

在这里插入图片描述

  • 注:EXTI最多支持76个输入的事件,EXTI_FTSR寄存器的每1个bit位配置1个输入的事件,一个寄存器最多配置32个,因此至少需要三个EXTI_FTSR寄存器。

  • 注:KEY1 --> PF9 --> EXTI9 --> EXTI9对应的输入事件的编号,
    查看21.3章节的表118,查看EXTI9对应的输入事件的编号
    在这里插入图片描述

2. EXTI_FPR1寄存器

在这里插入图片描述
在这里插入图片描述
读:判读下降沿中断是否发生
读0 : 表示没有下降沿触发中断请求发生
读1 : 表示有下降沿触发中断请求发生

写:清除中断挂载标志位(需要程序员手动清除)
写0:没有意思
写1:清除下降沿挂载标志位

3. EXIT_EXTI3寄存器

在这里插入图片描述
在这里插入图片描述

4. EXTI_C1IMR1寄存器

在这里插入图片描述
在这里插入图片描述

(五)GIC:全局中断控制器

在这里插入图片描述

1. GICD_CTLR : GICD control register

GICD层全局控制使能寄存器
在这里插入图片描述
在这里插入图片描述

2. GICD_ISENABLERx : GICD interrupt set-enable register x

GICD层中断设置使能寄存器
在这里插入图片描述

3. GICD_IPRIORITYRx :GICD interrupt priority register x

GICD层中断优先级寄存器,设置中断的优先级,编号越小中断优先级越高
在这里插入图片描述
在这里插入图片描述
GICD_IPRIORITYRx寄存器每5个bit位管理一个中断号。而GIC支持16个SGIs, 16个PPIs,
256个SPIs,共计288个中断号。GICD_IPRIORITYRx寄存器每一个寄存器最多管理4个中断号,
要想管理288个中断号,最少需要72(288 / 4 = 72)个寄存器

问题2:KEY1 --> PF9 --> EXTI9 --> 中断号99号
99号中断对应GICD_IPRIORITYRx寄存器的哪1个,哪5位?

中断号 / 4 = 商 ...... 余数|			|---> (余数 * 8 + 3)对应寄存器5位中的最低位|---> 寄存器的编号99 / 4 = 24 ...... 3GICD_IPRIORITYR24[31:27]位 配置99号中断的优先级,优先级的范围:0-31优先级的编号越小中断的优先级越高。

4. GICD_ITARGETSRx :GICD interrupt processor target register x

GICD层中断处理器目标分配寄存器,将中断信号转发给哪个CPU接口
在这里插入图片描述
GICD_ITARGETSRx寄存器每2个bit位管理一个中断号。而GIC支持16个SGIs, 16个PPIs,
256个SPIs,共计288个中断号。GICD_ITARGETSRx寄存器每一个寄存器最多管理4个中断号,
要想管理288个中断号,最少需要72(288 / 4 = 72)个寄存器

问题2:KEY1 --> PF9 --> EXTI9 --> 中断号99号
99号中断对应GICD_ITARGETSRx寄存器的哪1个,哪2位?

中断号 / 4 = 商 ...... 余数|			|---> (余数 * 8)对应寄存器5位中的最低位|---> 寄存器的编号99 / 4 = 24 ...... 3GICD_ITARGETSR24[25:24]位 配置99号中断的目标处理,0b01 : 分配中断给CPU0接口0b10 : 分配中断给CPU1接口		

5. GICD_ICPENDRx :GICD interrupt clear-pending register x

GICD层中断清除挂起寄存器,判读中断是否发生,清除中断挂起标志位
在这里插入图片描述

每一个bit位管理一个中断号,GIC支持16个SGIs,和256个SPIs,共计288个中断号。每个寄存器最多管理32个中断号,因此最少需要9个寄存器。
问题2:KEY1 --> PF9 --> EXTI9 --> 中断号99号
99号中断对应GICD_ICPENDRx寄存器的哪1个,哪1位?

中断号 / 32 = 商 ...... 余数|			|---> 寄存器对应的位|---> 寄存器的编号99 / 32 = 3 ...... 3GICD_ICPENDR3[3]位 配置99号中断,读0:zho写1:使能中断写0:没有影响

1. GICC_CTLR :GICC control register

GICC层全局中断控制使能寄存器

2. GICC_PMR : GICC input priority mask register

GICC输入中断优先级屏蔽寄存器。根据中断的优先级对中断进行屏蔽

3. GICC_IAR :GICC interrupt acknowledge register

GICC层中断应答寄存器,获取当前应答的中断的中断号,每个中断都有一个唯一的中断号。
中断号在芯片手册的21.2章节的表117中

4. GICC_EOIR :GICC end of interrupt register

GICC层中断结束寄存器,清除中断号

四、

在这里插入图片描述

相关文章:

ARM体系结构和接口技术(十)按键中断实验①

一、按键中断实验 (一)分析按键电路图 (二)芯片手册 二、按键中断实验分析 注:NVIC----Cortx-M核GIC----Cortx-A核 (一)查看所有外设的总线以及寄存器基地址 注:GIC的总线是A7核的…...

PostgreSQL使用(二)——插入、更新、删除数据

说明:本文介绍PostgreSQL的DML语言; 插入数据 -- 1.全字段插入,字段名可以省略 insert into tb_student values (1, 张三, 1990-01-01, 88.88);-- 2.部分字段插入,字段名必须写全 insert into tb_student (id, name) values (2,…...

有关css的题目

css样式来源有哪些&#xff1f; 内联样式&#xff1a; <a style"color: red"> </a> 内部样式&#xff1a;<style></style> 外部样式&#xff1a;写在独立的 .css文件中的 浏览器的默认样式 display有哪些属性 none - 不展示 block - 块类型…...

【开源库】libodb库编译及使用

前言 本文介绍windows平台下libodb库的编译及使用。 文末提供libodb-2.4.0编译好的msvc2019_64版本&#xff0c;可直接跳转自取 ODB库学习相关 【开源库学习】libodb库学习&#xff08;一&#xff09; 【开源库学习】libodb库学习&#xff08;二&#xff09; 【开源库学习】…...

电力需求预测挑战赛笔记 Task3 #Datawhale AI 夏令营

上文&#xff1a; 电力需求预测挑战赛笔记 Task2 #Datawhale AI 夏令营-CSDN博客文章浏览阅读80次。【代码】电力需求预测挑战赛笔记 Task2。https://blog.csdn.net/qq_23311271/article/details/140360632 前面我们介绍了如何使用经验模型以及常见的lightgbm决策树模型来解决…...

Promise 详解(原理篇)

目录 什么是 Promise 实现一个 Promise Promise 的声明 解决基本状态 添加 then 方法 解决异步实现 解决链式调用 完成 resolvePromise 函数 解决其他问题 添加 catch 方法 添加 finally 方法 添加 resolve、reject、race、all 等方法 如何验证我们的 Promise 是否…...

动态内存经典笔试题分析

目录 1.题目一 2.题目二 3.题目三 4.题目四 1.题目一 #include<stdlib.h> #include<stdio.h> #include<string.h> void GetMemory(char* p) {p (char*)malloc(100); } void Test(void) {char* str NULL;GetMemory(str);strcpy(str, "hello world…...

JS设计模式(一)单例模式

注释很详细&#xff0c;直接上代码 本文建立在已有JS面向对象基础的前提下&#xff0c;若无&#xff0c;请移步以下博客先行了解 JS面向对象&#xff08;一&#xff09;类与对象写法 特点和用途&#xff1a; 全局访问点&#xff1a;通过单例模式可以在整个应用程序中访问同一个…...

uniapp动态计算并设置元素高度

<template><view><scroll-view id"sv-box" :scroll-y"true" :style"{height:navHeightpx}"></scroll-view><view id"btn-box"><button>取消</button><button>确认</button><…...

直播架构如何设计核心节点和边缘节点

在直播架构中&#xff0c;核心节点和边缘节点的分工及主要服务是确保直播服务稳定、高效和可扩展的关键。以下是对这些节点的详细描述&#xff1a; 核心节点 核心节点通常位于数据中心&#xff0c;负责处理直播的主要逻辑和数据处理。其主要服务包括&#xff1a; 直播管理后…...

自动驾驶-预测概览

通过生成一条路径来预测一个物体的行为&#xff0c;在每一个时间段内&#xff0c;为每一辆汽车重新计算预测他们新生成的路径&#xff0c;这些预测路径为规划阶段做出决策提供了必要信息 预测路径有实时性的要求&#xff0c;预测模块能够学习新的行为。我们可以使用多源的数据…...

基于PSO算法优化PID参数的一些问题

目录 前言 Q1&#xff1a;惯性权重ω如何设置比较好&#xff1f;学习因子C1和C2如何设置&#xff1f; Q2&#xff1a;迭代速度边界设定一定能够遍历&#xff08;/覆盖&#xff09;整个PID参数二维空间范围吗&#xff1f;还是说需要与迭代次数相关&#xff1f;迭代次数越高&a…...

什么是决策树?

1. 什么是决策树&#xff1f; 决策树&#xff08;Decision Tree&#xff09;是一种常用的机器学习算法&#xff0c;用于解决分类和回归问题。它通过构建树结构来表示决策过程&#xff0c;分支节点表示特征选择&#xff0c;叶节点表示类别或回归值。 2. 决策树的组成部分 决策…...

ASP 快速参考

ASP 快速参考 概述 ASP&#xff08;Active Server Pages&#xff09;是一种由微软开发的服务器端脚本环境&#xff0c;用于动态网页设计和开发。它允许开发者创建和运行动态交互性网页&#xff0c;如访问数据库、发送电子邮件等。ASP页面通常以.asp为文件扩展名&#xff0c;并…...

(二)原生js案例之数码时钟计时

原生js实现的数字时间上下切换显示时间的效果&#xff0c;有参考相关设计&#xff0c;思路比较难&#xff0c;代码其实很简单 效果 代码实现 必要的样式 <style>* {padding: 0;margin: 0;}.content{/* text-align: center; */display: flex;align-items: center;justif…...

[CSS] 浮动布局的深入理解与应用

文章目录 浮动的简介元素浮动后的特点解决浮动产生的影响浮动后的影响解决浮动产生的影响 浮动相关属性实际应用示例示例1&#xff1a;图片与文字环绕示例2&#xff1a;多列布局示例3&#xff1a;响应式布局 总结 浮动布局是CSS中一种非常强大的布局方式&#xff0c;最初设计用…...

Linux云计算 |【第一阶段】ENGINEER-DAY2

主要内容&#xff1a; 磁盘空间管理fdisk、parted工具、开机自动挂载、文件系统、交换空间 KVM虚拟化 实操前骤&#xff1a; 1&#xff09;添加一块硬盘&#xff08;磁盘&#xff09;&#xff0c;需要关机才能进行操作&#xff0c;点击左下角【添加硬件】 2&#xff09;选择2…...

9.11和9.9哪个大?

没问题 文心一言 通义千问...

学懂C语言(十二):C语言中的二进制原理及应用

目录 1. 二进制原理 1.1 什么是二进制&#xff1f; 1.2 如何在C语言中表示二进制&#xff1f; 2. 二进制的表示 2.1 二进制和其他进制的转换 2.2 C语言中的二进制表示 3. 二进制运算 3.1 位运算符 3.2 计算过程示例 4. 应用示例 4.1 使用位运算实现开关 5. 总结 C语…...

科研绘图系列:R语言雨云图(Raincloud plot)

介绍 雨云图(Raincloud plot)是一种数据可视化工具,它结合了多种数据展示方式,旨在提供对数据集的全面了解。雨云图通常包括以下几个部分: 密度图(Density plot):表示数据的分布情况,密度图的曲线可以展示数据在不同数值区间的密度。箱线图(Box plot):显示数据的中…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...