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类内部封装了很多成员方…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
C++_哈希表
本篇文章是对C学习的哈希表部分的学习分享 相信一定会对你有所帮助~ 那咱们废话不多说,直接开始吧! 一、基础概念 1. 哈希核心思想: 哈希函数的作用:通过此函数建立一个Key与存储位置之间的映射关系。理想目标:实现…...
sshd代码修改banner
sshd服务连接之后会收到字符串: SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢? 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头,…...
