ARM-外部中断,ADC模数转换器
根据您提供的图片,我们可以看到一个S3C2440微控制器的中断处理流程图。这个流程图展示了从中断请求源到CPU的整个中断处理过程。以下是流程图中各个部分与您提供的寄存器之间的关系:
-
请求源(带sub寄存器):
-
这些是具体的中断源,例如UART0-ERR、UART0-RXD、UART0-TXD等。
-
每个请求源可能有一个对应的子中断源挂起标志(SUBSRCPND),用于指示该请求源下的具体中断事件。
-
-
子中断源开关(SUBMASK):
-
这个开关用于使能或禁用子中断源的中断请求。
-
例如,如果
SUBMASK
寄存器的某位被清除(即设置为0),则对应的子中断源的中断请求将被屏蔽。
-
-
源挂起标志(SRCPND):
-
这个寄存器用于记录哪些中断源的中断请求已经发生但尚未被处理。
-
在流程图中,
SRCPND
寄存器的值会被传递到开关(MASK)和优先级(MODE)模块。
-
-
开关(MASK):
-
这个模块用于使能或禁用中断请求的传递。
-
它使用
INTMSK
寄存器的值来决定是否允许中断请求通过。 -
在代码中,
INTMSK &= ~(1 << 5);
操作使能了EINT8_23中断组。
-
-
优先级(MODE):
-
这个模块用于设置中断的优先级。
-
它可能涉及到优先级寄存器(例如
INTPR
),但在您提供的代码中没有直接使用。
-
-
中断挂起标志(INTPND):
-
这个寄存器用于记录哪些中断已经发生但尚未被处理。
-
在流程图中,
INTPND
寄存器的值会被传递到CPU。 -
在代码中,
INTPND = INTPND;
操作用于清零中断挂起寄存器。
-
-
CPSR(I, F):
-
这是当前程序状态寄存器(CPSR)中的两个位,用于控制中断使能和禁止。
-
CPSR
寄存器的I
位用于使能或禁止IRQ中断,F
位用于使能或禁止FIQ中断。 -
在代码中,通过修改CPSR寄存器来使能IRQ中断。
-
-
CPU(ARM920T):
-
最终,处理完的中断请求会被传递到CPU进行处理。
-
CPU会根据中断的优先级和当前的中断使能状态来决定是否响应中断。
-
总结来说,流程图中展示了从中断请求源到CPU的整个中断处理过程,而您提供的寄存器在这个过程中起到了关键的作用。每个寄存器都有其特定的功能,共同协作以确保中断能够被正确地处理。
发生中断处理
-
mrs r0, cpsr
-
这条指令将当前程序状态寄存器(CPSR)的值移动到通用寄存器
r0
中。 -
CPSR包含了处理器的状态信息,如条件标志、中断使能位等。
-
-
bic r0, r0, #0x1f
-
这条指令对
r0
寄存器进行位清除(Bit Clear)操作,用于清除CPSR中的模式位(最低的5位,即0x1F)。 -
这样做是为了将当前的处理器模式位清零,为下一步设置新的模式做准备。
-
-
orr r0, r0, #0x12
-
这条指令对
r0
寄存器进行位或(Bit OR)操作,将模式位设置为0x12。 -
在ARM架构中,0x12代表IRQ模式。
-
-
msr cpsr_c, r0
-
这条指令将
r0
寄存器的值移回CPSR。 -
由于使用了
cpsr_c
而不是cpsr
,这条指令仅修改CPSR中的条件码标志位和模式位,而不会影响其他位(如中断使能位)。 -
这一步完成了处理器模式从当前模式切换到IRQ模式的操作。
-
-
ldr sp, =0x40000C00
-
这条指令将立即数
0x40000C00
加载到栈指针(SP)寄存器中。 -
这样做是为了初始化IRQ模式的栈指针,为即将到来的中断处理程序准备栈空间。
-
0x40000C00
是为IRQ模式预设的栈地址。
-
INTOFFSET为中断的偏移量,反映的是那种中断
在S3C2440微控制器中,涉及到中断处理的寄存器有多个,每个寄存器都有其特定的作用。以下是您提供的代码中涉及到的寄存器及其作用的详细说明:
1. GPGCON
-
作用:配置GPIO端口G的引脚功能。
-
操作:
-
GPGCON &= ~(0x3 << 0);
:清除GPG0引脚的功能设置,确保其不被其他功能占用。 -
GPGCON |= (0x2 << 0);
:将GPG0引脚设置为外部中断(EINT8)模式。
-
2. EXTINT1
-
作用:外部中断控制寄存器,用于设置外部中断的触发方式。
-
操作:
-
EXTINT1 &= ~(0x7 << 0);
:清除EINT8的触发方式设置,确保其不被其他设置影响。 -
EXTINT1 |= (0x2 << 0);
:将EINT8设置为下降沿触发。
-
3. EINTMASK
-
作用:外部中断屏蔽寄存器,用于使能或禁用特定的外部中断。
-
操作:
-
EINTMASK &= ~(1 << 8);
:使能EINT8中断,即清除屏蔽位,允许EINT8中断请求被发送到中断控制器。
-
4. INTMSK
-
作用:中断屏蔽寄存器,用于使能或禁用一组中断。
-
操作:
-
INTMSK &= ~(1 << 5);
:使能EINT8_23中断组,即清除屏蔽位,允许EINT8_23组中的中断请求被发送到中断控制器。
-
5. EINTPEND
-
作用:外部中断挂起寄存器,用于记录哪些外部中断已经发生但尚未被处理。
-
操作:
-
EINTPEND |= (1 << 8);
:清零EINT8的挂起位,表示EINT8中断已经被处理。
-
6. SRCPND
-
作用:源挂起寄存器,用于记录哪些中断源的中断请求已经发生但尚未被处理。
-
操作:
-
SRCPND |= (1 << irq_num);
:清除特定中断源的挂起位,表示该中断已经被处理。
-
7. INTPND
-
作用:中断挂起寄存器,用于记录哪些中断已经发生但尚未被处理。
-
操作:
-
INTPND = INTPND;
:通过将寄存器的值写回自身,清零所有挂起的中断位,表示所有挂起的中断已经被处理。
-
8. INTOFFSET
-
作用:中断偏移量寄存器,用于提供当前发生的中断的编号。
-
操作:
-
unsigned int irq_num = INTOFFSET;
:读取当前中断的编号,用于确定是哪种中断发生了。
-
这些寄存器共同工作,实现了S3C2440微控制器的中断处理机制,确保了系统能够正确响应和处理各种中断请求。
将value读取出来计算电压为3.3/1024*value
相关文章:
ARM-外部中断,ADC模数转换器
根据您提供的图片,我们可以看到一个S3C2440微控制器的中断处理流程图。这个流程图展示了从中断请求源到CPU的整个中断处理过程。以下是流程图中各个部分与您提供的寄存器之间的关系: 请求源(带sub寄存器): 这些是具体的…...
【从零实现Json-Rpc框架】- 项目实现 - 客户端注册主题整合 及 rpc流程示意
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
AWS 云运维管理指南
一、总体目标 高可用性:通过跨可用区 (AZ) 和跨区域 (Region) 的架构设计,确保系统运行可靠。性能优化:优化AWS资源使用,提升应用性能。安全合规:利用AWS内置安全服务,满足行业合规要求(如GDPR、ISO 27001、等保2.0)。成本管控:通过成本优化工具,减少浪费,实现FinOp…...
vector的实现:
我们之前讲了vector的接口,我们今天来看一下vector的底层的实现: 在gitee上面我们的这个已经实现好了,我们看gitee就可以:vector的实现/vector的实现/vector的实现.h 拾亿天歌/拾亿天歌 - 码云 - 开源中国 我们在这强调比较难的…...
flutter 专题 九十六 Flutter开发之常用Widgets
上一篇,我们介绍了基础Widgets,接下来,我们看一下Flutter开发中一些比较常见的Widget。 Flutter Widget采用现代响应式框架构建,这是从 React 中获得的灵感,中心思想是用widget构建你的UI。 Widget描述了他们的视图在…...
Linux环境下内存错误问题排查与修复
最近这几天服务器总是掉线,要查一下服务器的问题。可以首先查看一下计算机硬件,这是一台某鱼上拼凑的服务器: sudo lshw -shortH/W path Device Class Description system NF5270M3 (To be filled by O…...
flutter 专题 六十八 Flutter 多图片上传
使用Flutter进行应用开发时,经常会遇到选图、拍照等需求。如果要求不高,Flutter图库选择可以使用官方提供的image_picker,如果需要多选,那么可以使用multi_image_picker插件库。multi_image_picker库支持图库管理,多选…...
与总社团联合会合作啦
2025.4.2日,我社团向总社团联合会与暮光社团发起合作研究“浔川代码编辑器v2.0”。至3日,我社团收到回复: 总社团联合会: 总社团联合会已收到浔川社团官方联合会的申请,经考虑,我们同意与浔川社团官方联合…...
技巧:使用 ssh 设置隧道代理访问 github
问题 由于不可知的原因,在国内服务器不能访问 Github。但是有clone代码需求,这里介绍一种可行的方法。 解决办法 使用 ssh 设置代理,让代理服务器请求 github 解决。 第一步 ssh -fND 1080 用户名代理服务器IP这里的意思是监听 1080 端口…...
安装 TabbyAPI+Exllamav2 和 vLLM 的详细步骤
在 5090 显卡上成功安装 TabbyAPIExllamav2 和 vLLM 并非易事,经过一番摸索,我总结了以下详细步骤,希望能帮助大家少走弯路。 重要提示: 用户提供的 PyTorch 安装使用了 cu128,这并非标准 CUDA 版本。请根据你的系统实…...
Linux 进程信号
目录 信号 生活角度的信号 技术应用角度的信号 signal函数 信号概念 用kill -l命令可以察看系统定义的信号列表 信号处理常见方式概览 信号的产生 通过键盘组合键发送信号 通过系统函数向进程发信号 由软件条件产生信号 由硬件异常产生信号 信号的保存 阻塞信号 …...
【学习篇】fastapi接口定义学习
fastapi学习链接:用户指南 1. 路径参数 访问fastapi接口的默认http路径为http://127.0.0.1:8000,/items为定义的接口函数read_item的路径,/{item_id}这个用大括号括起来的参数就是路径参数,接口函数可以通过引用这个路径参数名称…...
第十二步:react
React 1、安装 1、脚手架 npm i -g create-react-app:安装react官方脚手架create-react-app 项目名称:初始化项目 2、包简介 react:react框架的核心react-dom:react视图渲染核心react-native:构建和渲染App的核心…...
MySQL简介
MySQL 是由瑞典 MySQL AB 公司开发的一款开源关系型数据库管理系统(RDBMS),现归属 Oracle 公司。以下是其核心特点及简介: 1. 基础特性 - 开源免费:遵循 GPL 协议,个人及中小型企业可免费使用,…...
AIGC时代Kubernetes企业级云原生运维实战:智能重构与深度实践指南
文章目录 一、AIGC技术栈与Kubernetes的深度融合1. 智能配置生成:从YAML到自然语言2. 动态资源优化:AI驱动的弹性伸缩 二、智能运维体系架构深度解析四维能力矩阵增强实现:关键组件升级代码示例: 三、企业级实战策略深度实践策略1…...
市场波动与交易策略优化
市场波动与交易策略优化 在交易市场中,价格波动是常态。如何有效应对市场的波动,制定合理的交易策略,成为许多交易者关注的重点。本文将探讨市场波动的影响因素,并介绍应对不同市场波动环境的策略。 一、市场波动的影响因素 市场供…...
Prolog语言的移动UI设计
Prolog语言的移动UI设计 随着移动设备的普及,用户界面的设计已成为软件开发的重要组成部分。移动UI设计不仅要注重美观,更要关注用户体验和功能的实现。使用Prolog语言进行移动UI设计,虽然相对少见,但其逻辑编程的特性为复杂的交…...
linux 命令 awk
awk 是 Linux/Unix 系统中一个强大的文本处理工具,尤其擅长处理结构化文本数据(如日志、表格数据)。它不仅是命令行工具,还是一种脚本语言,支持变量、条件、循环等编程特性 1. 基本语法 awk [选项] 模式 {动作} 文件名…...
在 PyQt 加载 UI 三种方法
目录 方法一:使用 uic 模块动态加载 (不推荐用于大型项目) 方法二:将 UI 文件编译为 Python 模块后导入 方法3:使用uic模块直接在代码中加载UI文件 注意事项 总结: 在PyQt中,加载UI文件通常…...
前端快速入门学习2-HTML
一、概述 HTML全称是Hypertext Markup Language(超文本标记语言) HTML通过一系列的 标签(也称为元素) 来定义文本、图像、链接等等。HTML标签是由尖括号包围的关键字。 标签通常成对出现,包括开始标签和结束标签(也称为双标签),内容位于这两个标签之间…...
Cortex-M系列MCU的位带操作
Cortex-M系列位带操作详解 位带(Bit-Banding)是Cortex-M3/M4等处理器提供的一种硬件特性,允许通过别名地址对内存或外设寄存器中的单个位进行原子读-改-写操作,无需禁用中断或使用互斥锁。以下是位带操作的完整指南: …...
【嵌入式-stm32电位器控制LED亮灭以及编码器控制LED亮灭】
嵌入式-stm32电位器控制LED亮暗 任务代码Key.cKey.hmain.c 实验现象 任务 本文主要介绍利用stm32f103C8T6实现电位器控制PWM的占空比大小来改变LED亮暗程度,按键实现使用定时器非阻塞式,其中一个按键切换3个LED的控制状态,另一个按键是重置当…...
抖音热点视频识别与分片处理机制解析
抖音作为日活数亿的短视频平台,其热点视频识别和分片处理机制是支撑高并发访问的核心技术。以下是抖音热点视频识别与分片的实现方案: 热点视频识别机制 1. 实时行为监控系统 用户行为聚合:监控点赞、评论、分享、完播率等指标的异常增长曲线内容特征分析:通过AI识别视频…...
添加购物车功能
业务需求: 用户提交三个字段,服务端根据提交的字段判断是菜品还是套餐,根据菜品或者套餐添加购物车表中。 代码实现 RestController Slf4j RequestMapping("/user/shoppingCart") public class ShoppingCartController {Autowired…...
蓝桥杯备赛 Day16 单调数据结构
单调栈和单调队列能够动态的维护,还需用1-2两个数组在循环时从单调栈和单调队列中记录答案 单调栈 要点 1.时刻保持内部元素具有单调性质的栈(先进后出),核心是:入栈时逐个删除所有"更差的点",一般可分为单调递减栈、单调递增栈、单调不减栈、单调不增…...
AI Agent开发大全第十九课-神经网络入门 (Tensorflow)
(前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站)。 一、从买房困惑到神经元:神经网络的灵感来源 1.1 房地产经纪人的定价难题 想象一个周末的房产中介门店,经纪人小李正面对10份不同房源的报...
Mac VM 卸载 win10 安装win7系统
卸载 找到相应直接删除(移动到废纸篓) 可参考:mac如何卸载虚拟机win 下载 win7下载地址...
torch.nn中的非线性激活使用
1、神经网络中的非线性激活 在神经网络中,**非线性激活函数(Non-linear Activation Functions)**是引入非线性变换的关键组件,使神经网络能够学习并建模复杂的非线性关系。如果没有激活函数,无论神经网络有多少层&…...
【安全】Web渗透测试(全流程)_渗透测试学习流程图
1 信息收集 1.1 域名、IP、端口 域名信息查询:信息可用于后续渗透 IP信息查询:确认域名对应IP,确认IP是否真实,确认通信是否正常 端口信息查询:NMap扫描,确认开放端口 发现:一共开放两个端口&…...
要素的选择与转出
1.要素选择的三种方式 当要在已有的数据中选择部分要素时,ArcMap提供了三种方式:按属性选择、位置选择及按图形选择。 1)按属性选择 通过设置 SQL查询表达式,用来选择与选择条件匹配的要素。 (1)单击主菜单下【选择】【按属性选择】,打开【按…...
C 语言命令行参数:让程序交互更灵活
一、引言 在 C 语言编程领域,命令行参数是一种极为实用的机制,它允许我们在执行程序时,从外部向程序传递数据。这一特性极大地增强了程序的灵活性和可控性,避免了在代码中对数据进行硬编码。比如在开发系统工具、脚本程序时&…...
部署nerdctl工具
nerdctl 是一个专为Containerd设计的容器管理命令行工具,旨在提供类似 Docker 的用户体验,同时支持 Containerd 的高级特性(如命名空间、compose等)。 1、下载安装 wget https://github.com/containerd/nerdctl/releases/downlo…...
SOA 架构
定义与概念:SOA 将应用程序的不同功能单元(称为服务)进行封装,并通过定义良好的接口和协议来实现这些服务之间的通信和交互。这些服务可以在不同的平台和编程语言中实现,彼此之间相互独立,能够以松散耦合的…...
K8s私有仓库拉取镜像报错解决:x509 certificate signed by unknown authority
前言 在Kubernetes环境中使用自签名证书的私有Harbor镜像仓库时,常会遇到证书验证失败的问题。本文将详细讲解如何解决这个常见的证书问题。 环境信息: Kubernetes版本:1.28.2容器运行时:containerd 1.6.20私有仓库:…...
在线考试系统带万字文档java项目java课程设计java毕业设计springboot项目
文章目录 在线考试系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码带万字文档(9.9¥带走) 在线考试系统 一、项目演示 在线考试系统 二、项目介绍 1、管理员角色: 考试管理&…...
Axure RP 9 详细图文安装流程(附安装包)教程包含下载、安装、汉化、授权
文章目录 前言一、Axure RP 9介绍二、Axure RP 9 安装流程1. Axure RP 9 下载2. 启动安装程序3. 安装向导操作4.完成安装 三、Axure RP 9 汉化四、Axure RP 9授权 前言 本基础安装流程教程,将以清晰、详尽且易于遵循的步骤介绍Axure RP 9 详细图文安装流程…...
动态规划练习题④
583. 两个字符串的删除操作 给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 示例 1: 输入: word1 "sea", word2 "eat" 输出: 2 解释: 第一步将 &quo…...
多输入多输出 | Matlab实现BO-GRU贝叶斯优化门控循环单元多输入多输出预测
多输入多输出 | Matlab实现BO-GRU贝叶斯优化门控循环单元多输入多输出预测 目录 多输入多输出 | Matlab实现BO-GRU贝叶斯优化门控循环单元多输入多输出预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现BO-GRU贝叶斯优化门控循环单元多输入多输出预测&#…...
爬虫工程师的社会现状
现在网上你只要搜索教程就是韦世东;k哥爬虫教你爬虫方面的逆向知识;然后看着这些逆向js百例;搞得我很尴尬我做了这么多年的爬虫工程师;现在算什么;这些逆向的东西我并没有很深层次的了解;但是工作的内容也依旧解决了;并没有到爬虫工程师非要会那么多逆向才能算的上是合格的爬虫…...
Flink 1.20 Kafka Connector:新旧 API 深度解析与迁移指南
Flink Kafka Connector 新旧 API 深度解析与迁移指南 一、Flink Kafka Connector 演进背景 Apache Flink 作为实时计算领域的标杆框架,其 Kafka 连接器的迭代始终围绕性能优化、语义增强和API 统一展开。Flink 1.20 版本将彻底弃用基于 FlinkKafkaConsumer/FlinkK…...
Vue2 父子组件数据传递与调用:从 ref 到 $emit
提示:https://github.com/jeecgboot/jeecgboot-vue2 文章目录 案例父组件向子组件传递数据的方式父组件调用子组件方法的方式子组件向父组件传递数据的方式流程示意图 案例 提示:以下是本篇文章正文内容,下面案例可供参考 以下是 整合后的关…...
【matplotlib参数调整】
1. 基本绘图函数常用参数 折线图 import matplotlib.pyplot as plt import numpy as npx np.linspace(0, 10, 100) y np.sin(x)plt.plot(x, y, colorred, linestyle--, linewidth2,markero, markersize5, labelsin(x), alpha0.8) plt.title(折线图示例) plt.xlabel(X 轴) p…...
如何使用 IntelliJ IDEA 开发命令行程序(或 Swing 程序)并手动管理依赖(不使用 pom.xml)
以下是详细步骤: 1. 创建项目 1.1 打开 IntelliJ IDEA。 1.2 在启动界面,点击 Create New Project(创建新项目)。 1.3 选择 Java,然后点击 Next。 1.4 确保 Project SDK 选择了正确的 JDK 版本&#x…...
Linux红帽:RHCSA认证知识讲解(十 一)配置NTP 时间同步、用户密码策略与使用 autofs 实现 NFS 自动挂载
Linux红帽:RHCSA认证知识讲解(十 一)配置NTP 时间同步、用户密码策略与 NFS 自动挂载 前言一、配置 NTP 时间同步1.1 NTP 简介1.2 安装和配置 NTP 客户端 二、配置新建用户密码过期时间2.1 查看用户密码过期时间2.2 修改密码过期时间 三、使用…...
ffmpeg音视频处理流程
文章目录 FFmpeg 音视频处理流程详细讲解总结音视频处理流程相关的 FFmpeg 工具和命令 FFmpeg 的音视频处理流程涵盖了从输入文件读取数据、编码和解码操作、数据处理、以及最终输出数据的完整过程。为了更好地理解这一流程,我们可以从以下几个关键步骤来分析&#…...
leetcode-代码随想录-链表-移除链表元素
题目 链接:203. 移除链表元素 - 力扣(LeetCode) 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 输入:head [1,2,6,3,4,5,6], val 6 …...
c++与rust的语言区别,rust的主要难点,并举一些例子
C 和 Rust 都是系统级编程语言,它们在设计目标、语法、内存管理等方面存在诸多区别,以下为你详细介绍: 设计目标 C:C 最初是为了给 C 语言添加面向对象编程特性而设计的,之后不断发展,旨在提供高性能、灵…...
从基础算力协作到超智融合,超算互联网助力大语言模型研习
一、背景 大语言模型(LLMs)的快速发展释放出了AI应用领域的巨大潜力。同时,大语言模型作为 AI领域的新兴且关键的技术进展,为 AI 带来了全新的发展方向和应用场景,给 AI 注入了新潜力,这体现在大语言模型独…...
【spring cloud Netflix】Eureka注册中心
1.概念 Eureka就好比是滴滴,负责管理、记录服务提供者的信息。服务调用者无需自己寻找服务,而是把自己的 需求告诉Eureka,然后Eureka会把符合你需求的服务告诉你。同时,服务提供方与Eureka之间通过“心跳” 机制进行监控…...
记录学习的第二十天
今天只做了一道题,有点不在状态。 这道题其实跟昨天的每日一题是差不多的,不过这道题需要进行优化。 根据i小于j,且j小于k,当nums[j]确定时,保证另外两个最大即可得答案。 所以可以使用前缀最大值和后缀最大值。 代…...