Linux 学习记录57(ARM篇)
Linux 学习记录57(ARM篇)

本文目录
- Linux 学习记录57(ARM篇)
- 一、外部中断
- 1. 概念
- 2. 流程图框
- 二、相关寄存器
- 1. GIC CPU Interface (GICC)
- 2. GIC distributor (GICD)
- 3. EXTI registers
- 三、EXTI 寄存器
- 1. 概述
- 2. 内部框图
- 3. 寄存器功能描述
- 4. EXTI选择框图
- 5. EXTI_EXTICR1 (1-4)
- 6. EXTI_RTSR1
- 6. EXTI_FTSR1
- 7. EXTI_IMR1
- 8. EXTI_FPR1
一、外部中断
1. 概念
2. 流程图框
通过IO口的电平,产生对应的外部中断,通过外部中断的处理函数完成相应功能
外部中断是计算机系统中的一种中断类型,它由外部设备或外部事件触发,以通知计算机系统执行相应处理程序。
当外部设备需要与计算机进行交互或者发生了某些需要处理的事件时,会发送一个中断信号给CPU,CPU则会中断当
前正在执行的程序,转而执行与该中断相关的处理程序。外部中断可以分为多种类型,比如硬件中断和软件中断。硬件中断是由硬件设备产生的,比如键盘输入、鼠标点击
、定时器到达等。软件中断则是由软件程序主动触发的,比如系统调用、软件异常等。外部中断的处理过程包括中断请求、中断响应和中断处理三个阶段。当外部设备发送中断请求信号时,CPU会检测
到该信号,并保存当前程序的执行现场信息,然后跳转到相应的中断处理程序执行。执行完中断处理程序后,CPU
会恢复之前保存的程序执行现场信息,继续执行被中断的程序。外部中断的引入可以提高计算机系统的处理效率和响应能力,使系统能够及时处理各种外部事件。

二、相关寄存器

1. GIC CPU Interface (GICC)
GIC CPU Interface (GICC)是一种用于处理器与中断控制器之通信的接口。GIC代表通用中断控制器,它是一种硬件
组件,用于管理和处理中断信号。GICC提供了一组寄存器和控制逻辑,用于处理器与GIC之间的交互。它允许处理器与GIC进行中断的注册、屏蔽、
触发和处理等操作。GICC的主要功能包括:1. 中断屏蔽和使能:处理器可以通过设置相关寄存器来屏蔽或使能特定的中断信号。
2. 中断触发:处理器可以通过写入相应的寄存器来触发中断信号,将其发送给GIC。
3. 中断注册:处理器可以将自己作为中断处理程序注册到GIC,以便在中断发生时接收到相应的中断通知。
4. 中断处理:当中断发生时,GIC会将中断信号发送给相应的处理器,并将执行权转移到相应的中断处理程序。GICC是在多核处理器系统中广泛使用的一种接口,它可以实现多个处理器同时与中断控制器进行通信和协调,提高
系统的并发处理能力和中断管理效率。

2. GIC distributor (GICD)
GIC distributor (GICD)是通用中断控制器(GIC)中的一个组件,它负责接收来自外部设备的中断信号,并将这些中断信号分发给对应的处理器核心进行处理。GICD在多核处理器系统中起到了协调和管理中断的重要作用。
GICD具有以下主要功能:
- 中断路由:GICD根据中断信号的特征将其路由到相应的处理器核心。每个处理器核心都可以通过GICD配置来决定是否接受某个特定中断信号。
- 中断优先级:GICD可以配置每个中断信号的优先级,确保高优先级的中断得到及时处理。
- 中断屏蔽和使能:GICD提供了寄存器用于屏蔽或使能特定的中断信号,以便控制中断的触发和处理。
- 中断分组:GICD支持将中断信号分组,以便更好地管理和处理不同类型的中断信号。
- 中断转发:GICD可以将一个中断信号转发给其他处理器核心,以实现多核之间的中断通知和共享。
GICD与GICC(GIC CPU Interface)一起构成了GIC的核心组件,它们共同实现了中断的管理和处理。通过GICD,多个处理器核心可以协同工作,高效地处理来自外部设备的中断信号,提高系统的并发处理能力和中断管理效率。

3. EXTI registers
EXTI (External Interrupt)寄存器是用于处理外部中断的寄存器组。它们是STM32系列微控制器中的一部分,用于处理与外部设备相关的中断信号。
在STM32微控制器中,外部中断通过EXTI寄存器来配置和管理。EXTI寄存器包括以下几个主要寄存器:
- EXTI_IMR (Interrupt Mask Register):用于屏蔽或使能特定的外部中断线。每个位对应一条外部中断线,设置为1表示使能,设置为0表示屏蔽。
- EXTI_RTSR (Rising Trigger Selection Register):用于选择上升沿触发的外部中断线。每个位对应一条外部中断线,设置为1表示选择上升沿触发,设置为0表示不选择。
- EXTI_FTSR (Falling Trigger Selection Register):用于选择下降沿触发的外部中断线。每个位对应一条外部中断线,设置为1表示选择下降沿触发,设置为0表示不选择。
- EXTI_PR (Pending Register):用于标记外部中断线是否处于待处理状态。每个位对应一条外部中断线,设置为1表示该中断线产生了中断,需要处理后清除。
通过配置这些EXTI寄存器,可以灵活地控制和管理外部中断的触发和处理。比如,可以选择上升沿或下降沿触发中断,屏蔽或使能特定的中断线,以及检查中断线的待处理状态。这样,系统可以根据具体需求对外部中断进行灵活的配置和处理。

三、EXTI 寄存器
1. 概述

2. 内部框图

3. 寄存器功能描述

4. EXTI选择框图
PIN1对应EXTI0,PIN2对应EXTI2,以此类推

5. EXTI_EXTICR1 (1-4)
EXTI_EXTICR1 是一个寄存器,用于配置外部中断线与GPIO引脚之间的映射关系。在STM32微控制器中,有多个外部中断线可以与不同的GPIO引脚相连,EXTI_EXTICR1 寄存器用于设置其中的一组映射关系。
将Pin0-15引脚分为4组,分别使用EXTI_EXTICR1 到EXTI_EXTICR4配置

例如要将PA7的于GPIO中断相连这就需要将该组寄存器的EXTI7设置位0x00,如果是PC7则为0x02

6. EXTI_RTSR1
外部中断的上升沿配置寄存器

6. EXTI_FTSR1
外部中断的下升沿配置寄存器

7. EXTI_IMR1
EXTI_IMR1(Interrupt Mask Register 1)是STM32微控制器中的一个寄存器,用于屏蔽或使能外部中断线。
它是EXTI(External Interrupt)寄存器组中的一个寄存器。EXTI_IMR1寄存器是一个32位的寄存器,每个位对应一条外部中断线。通过设置相应的位,可以选择使能或屏蔽特
定的外部中断线。当某个外部中断线的对应位被设置为1时,表示该中断线被使能,可以触发中断。当对应位被设
置为0时,表示该中断线被屏蔽,不会触发中断。通过对EXTI_IMR1寄存器进行配置,可以灵活地选择哪些外部中断线会触发中断处理程序,以适应特定的应用需求
设置为将相应的中断的位配置为1即不屏蔽中断

8. EXTI_FPR1
EXTI_FPR1:EXTI falling edge pending register寄存器名字:EXTI下降沿挂起寄存器作用:清除EXTI层中断挂起标志位rc_w1:可读可写读0:表示中断没有触发读1:表示中断触发写0:不清除EXTI层中断挂起标志位写1:清除EXTI层中断挂起标志位

相关文章:
Linux 学习记录57(ARM篇)
Linux 学习记录57(ARM篇) 本文目录 Linux 学习记录57(ARM篇)一、外部中断1. 概念2. 流程图框 二、相关寄存器1. GIC CPU Interface (GICC)2. GIC distributor (GICD)3. EXTI registers 三、EXTI 寄存器1. 概述2. 内部框图3. 寄存器功能描述4. EXTI选择框图5. EXTI_EXTICR1 &…...
Doris注意事项,Doris部署在阿里云,写不进去数据
1.Doris官网 Doris官网https://doris.apache.org/ 2.根本原因 本地idea访问FE,FE会返回BE的地址,但是在服务器上通过ip addr查看,发现只有局域网IP,所以FE返回了局域网的IP,导致idea连接不上BE 3.解决办法 重写Ba…...
502 Bad GateWay报错的解决方法
什么是502 bad gateway 报错 简单来说 502 是报错类型代码 bad gateway 错误的网关。是Web服务器作为网关或代理服务器时收到无效的响应。 用我们的口语说就是运行网站的服务器暂时挂了(不响应)。 产生错误的原因 1.连接超时 我们向服务器发送请求 由于服务器当前链接太多&am…...
openpnp - ReferenceStripFeeder 改版零件
文章目录 openpnp - ReferenceStripFeeder 改版零件概述笔记整体效果散料飞达主体磁铁仓盖板飞达编带中间压条飞达编带两边压条装配体用的8mm编带模型END openpnp - ReferenceStripFeeder 改版零件 概述 官方推荐了ReferenceStripFeeder的模型smd_strip_feeders_mod_tray.zip…...
VoxPoser:使用大语言模型(GPT-4)来对机器人操作的可组合三维值图【论文解读】
这是最近斯坦福的李飞飞团队的一篇论文:VoxPoser: Composable 3D Value Maps for Robotic Manipulation with Language Models 主要是通过大语言模型LLM和视觉语言模型VLM结合,来对机器人做各种日常操作,我们可以先来看下实际效果:大语言模型…...
RISC-V公测平台发布 · 第一个WEB Server “Hello RISC-V world!”
RISC-V公测平台Web Server地址:http://175.8.161.253:8081 一、前言 Web Server是互联网应用的基础设施,无论是用户访问网站,还是后端服务提供商和开发者构建各种应用程序,Web Server都在其中扮演着至关重要的角色。 显而易见…...
Linux 发行版 CentOS 于 Ubuntu 软件的安装、卸载、查找
CentOS于Ubuntu 内核都是Linux,是一样的。 CentOS 软件格式 .rpm sudo yum [-y] [ install | remove | search ] 软件名称 install 安装 remove 移除 search 搜索 Ubuntu 软件格式 .deb sudo apt [-y] [ install | remove | search ] 软件名称 install 安装 remove…...
cmd相关操作命令
1.根据端口号查询对应进程的PID netstat -ano | findstr 端口号 例如:netstat -ano | findstr 9080;该端口所属进程的PID为6684 2.根据PID查询对应进程 tasklist | findstr PID 例如:tasklist | findstr 6684;该PID所属进程名为…...
使用EM算法完成聚类任务
EM算法(Expectation-Maximization Algorithm)是一种基于迭代优化的聚类算法,用于在无监督的情况下将数据集分成几个不同的组或簇。EM算法是一种迭代算法,包含两个主要步骤:期望步骤(E-step)和最…...
❤️创意网页:创意视觉效果粒子循环的网页动画
✨博主:命运之光 🌸专栏:Python星辰秘典 🐳专栏:web开发(简单好用又好看) ❤️专栏:Java经典程序设计 ☀️博主的其他文章:点击进入博主的主页 前言:欢迎踏入…...
【MTI 6.S081 Lab】thread
【MTI 6.S081 Lab】thread 前言调度Uthread: switching between threads (moderate)实验任务Hints解决方案thread_switchthread_create()thread_schedule() Using threads (moderate)实验任务解决方案 Barrier (moderate)实验任务解决方案 本实验前去看《操作系统导论》第29章基…...
AWS / VPC 云流量监控
由于安全性、数据现代化、增长、灵活性和成本等原因促使更多企业迁移到云,将数据存储在本地的组织正在使用云来存储其重要数据。亚马逊网络服务(AWS)仍然是最受追捧和需求的服务之一,而亚马逊虚拟私有云(VPC࿰…...
【C++学习笔记】extern “c“以及如何查看符号表
如何查看符号表 要查看.a文件的内容,可以使用ar命令。下面是一些常见的用法: 列出.a文件中包含的所有文件: ar t <filename.a>提取.a文件中的单个文件: ar x <filename.a> <filename.o>将.a文件中的所有文件提…...
24考研数据结构-数组和特殊矩阵
目录 数据结构:数组与特殊矩阵数组数组的特点数组的用途 特殊矩阵对角矩阵上三角矩阵和下三角矩阵稀疏矩阵特殊矩阵的用途 结论 3.4 数组和特殊矩阵3.4.1数组的存储结构3.4.2普通矩阵的存储3.4.3特殊矩阵的存储1. 对称矩阵(方阵)2. 三角矩阵(方阵)3. 三对角矩阵(方阵…...
服务器后台运行程序
代码运行 要让代码在服务器后台运行,有多种方法。在 Linux 系统中,最常见的有以下几种方式: **1. 使用 & 符号:** 在命令后面添加 & 符号可以让程序在后台运行。例如: bash python myscript.py &但是…...
大数据课程D7——hadoop的YARN
文章作者邮箱:yugongshiyesina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解YARN的概念和结构; ⚪ 掌握YARN的资源调度流程; ⚪ 了解Hadoop支持的资源调度器:FIFO、Capacity、Fair; ⚪ 掌握YA…...
Rust vs Go:常用语法对比(十三)
题图来自 Go vs. Rust: The Ultimate Performance Battle 241. Yield priority to other threads Explicitly decrease the priority of the current process, so that other execution threads have a better chance to execute now. Then resume normal execution and call f…...
【【51单片机DA转换模块】】
爆改直流电机,DA转换器 main.c #include <REGX52.H> #include "Delay.h" #include "Timer0.h"sbit DAP2^1;unsigned char Counter,Compare; //计数值和比较值,用于输出PWM unsigned char i;void main() {Timer0_Init();whil…...
[SQL挖掘机] - 字符串函数 - substring
介绍: substring函数是在mysql中用于提取字符串的一种函数。它接受一个字符串作为输入,并返回从该字符串中指定位置开始的一部分子串。substring函数可以用于获取字符串中的特定字符或子串,以便进行进一步的处理或分析。 用法: 下面是substring函数的…...
第一百一十六天学习记录:C++提高:STL-string(黑马教学视频)
string基本概念 string是C风格的字符串,而string本质上是一个类 string和char区别 1、char是一个指针 2、string是一个类,类内部封装了char*,管理这个字符串,是一个char型的容器。 特点: string类内部封装了很多成员方…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...
加密通信 + 行为分析:运营商行业安全防御体系重构
在数字经济蓬勃发展的时代,运营商作为信息通信网络的核心枢纽,承载着海量用户数据与关键业务传输,其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级,传统安全防护体系逐渐暴露出局限性&a…...
