硬件-1、体系架构

cpu

处理器

arm处理器的七种工作模式

arm寄存器

两张图是一样的,r0---r12是通用寄存器。其他寄存器可参考图一,cpu架构。

程序状态寄存器psr(cpsr/spsr)

程序异常处理

理解示例

当使用swi(软中断指令)指令时,假设此时程序异常,使用异常处理

由此,此时会进入supervisor模式,由于我们的代码都在user模式下运行,所以首先我们要切回user模式。在程序状态寄存器框图中,能看到mode位的值决定模式

异常处理1

这里有个操作

利用MSR操作,可以只传psr寄存器的一个域(fields),也可以是多个,这里我们只用c域。

把cpsr的值保存到r0,再变r0,最后把改好的r0的c域给到cpsr

这里不直接改cpsr,因为中间一些不存在的寄存器状态容易出错。

继续看这个图

异常处理2

1.观察

当程序直行到中断断点前cpsr寄存器为d0

点击下一步,看到spsr为d0,拷贝过来了

可以看到,中断禁止位为1,并处于arm态,第三条进入相应异常模式就是supervise模式。

返回了地址

2.设置异常向量表

由于我们这里是中断导致的异常,由中断向量表,所以初始化中断向量表时应该在0x08的位置处理异常

中断处理规定了的上图所示的地址,所以我们在初始化中断向量表时必须写在程序最开始,符合向量表初始化要求的地址。当异常1发生,就会跳到那个地址去。

中断发生后,会进入异常处理里的第三条,我们在这里调用一个定义的中断处理函数。

这个函数由我们定义

由寄存器图看出,没种状态的sp寄存器都是单独的。

pc的空间地址是0x40000000到0x40001000,这里由supervise模式切换到user模式,所以要分出两片空间(这块理解的不太清楚,还没学,可能有误)

但这里是必须的

3.从spsr恢复cpsr

区分中断的参数

swi的取值范围是0-0xffffff

因为lr寄存器存了swi的返回地址,就是下图45行代码的地址

所以用lr寄存器的值减去0x4就得到43行代码的地址,再去掉高八位,就可以拿到0x7的值了

再根据值进行判断处理

为了简单,我们可以在c文件定义.c处理函数。

比如

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ3.13.x之十_流过滤的内部结构设计与实现

RabbitMQ3.13.x之十_流过滤的内部结构设计与实现 文章目录 RabbitMQ3.13.x之十_流过滤的内部结构设计与实现1. 概念1. 消息发布2. 消息消费 2. 流的结构1. 在代理端进行过滤2. 客户端筛选3. JavaAPI示例4. 流过滤配置5. AMQP上的流过滤6. 总结 3. 相关链接 1. 概念 流过滤的思…

大算力芯片,正在拥抱Chiplet

随着摩尔定律走到极限,Chiplet被行业普遍认为是未来5年算力的主要提升技术。 在和业内人士交流时,有人曾表示:“要么业界采用Chiplet技术,维持摩尔定律的影响继续前进,要么就面临商业市场的损失。” 随着摩尔定律走到…

使用ADS确定元器件的等效感值与等效容值

使用ADS确定元器件的等效感值与等效容值 使用Win家的ADS的PDK,里面有一些微带电感结构,但是居然没有标注感值,给设计带来了一定的不便。 那么对于一个电路结构,如微带线、微带螺旋电感,我们如何知道其实际的感值、容…

磁盘压力测试工具(vdbenchfio)

磁盘压力测试工具(vdbench&fio) 最近有遇到对象挂载为文件系统的需求,为了测试挂载后的读写性能,有了解了一些测试工具。下面给大家分享下我使用的工具vdbench和fio。 1 vdbench 官网文档:https://www.oracle.com/…

【三十五】【算法分析与设计】综合练习(2),22。 括号生成,77。 组合,494。 目标和,模拟树递归,临时变量自动维护树定义,递归回溯,非树结构模拟树

22. 括号生成 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n 3 输出:["((())&#xff0…

软件杯 深度学习二维码识别

文章目录 0 前言2 二维码基础概念2.1 二维码介绍2.2 QRCode2.3 QRCode 特点 3 机器视觉二维码识别技术3.1 二维码的识别流程3.2 二维码定位3.3 常用的扫描方法 4 深度学习二维码识别4.1 部分关键代码 5 测试结果6 最后 0 前言 🔥 优质竞赛项目系列,今天…

电商数据API接口|主流电商平台数据采集的主要方式:电商API接口接入实现大量级数据采集

item_get-获得淘宝商品详情 API测试注册KEY taobao.item_get 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,it…

机器学习模型——K—Means算法

目录 无监督学习概念: 有监督学习与无监督学习: 无监督学习 - 聚类分析 : 聚类算法应用场景: 常用聚类算法介绍: 对不同的聚类算法应用选择原则: 基于原型聚类: K-Means聚类算法概念及步…

通过电机转速计算主轴旋转单圈所需时间(CODESYS ST代码)

1、伺服丝杠系统常用算法功能块 伺服丝杠系统常用算法功能块-CSDN博客文章浏览阅读353次。这篇博客主要介绍伺服、丝杠系统常用的运算功能块,其它相关运算可以查看下面文章链接:信捷PLC脉冲频率、位移、转速相关计算(C语言编程应用)_RXXW_Dor的博客-CSDN博客。https://rxxw-…

UE4_如果快速做出毛玻璃效果_假景深

UE4_如果快速做出毛玻璃效果_假景深 2022-08-20 15:02 一个SpiralBlur-SceneTexture材质节点完成效果,启用半透明材质通过修改BlurAmount数值大小调整效果spiralBlur-SceneTexture custom节点,HLSL语言float3 CurColor 0;float2 BaseUV MaterialFloa…

系统思考—领导者

“组织是船,领导者是什么角色?” 对于这个看似简单的问题,很多人可能会直观地想到船长或舵手。但学习型组织的倡导者彼得圣吉给出了另一种视角:如果组织是一艘船,那么领导者首先应该是这艘船的设计师。 在我近期与各个…

Linux:进程等待究竟是什么?如何解决子进程僵尸所带来的内存泄漏问题?

Linux:进程等待究竟是什么?如何解决子进程僵尸所带来的内存泄漏问题? 一、进程等待的概念二、进程等待存在的意义三、如何进行进程等待3.1 wait()是实现进程等待1、wait()原型2. 验证wait()能回收僵尸子进程的空间 3.2 waitpid()实现进程等待…

电子积木方案开发商

东莞市酷得智能科技有限公司电子积木方案开发商 提供消费电子解决方案、提供IC技术支持,全国线上线下服务 积木小车底层驱动开发过程主要涉及到以下几个方面: 首先,需要对小车底盘结构、硬件、模块等有深入的了解。底盘承载着机器人定位、导…

Kubernetes(k8s):Pod 的 Node Selector详解

Kubernetes(k8s):Pod 的 Node Selector详解 1、什么是Node Selector?2、Node Selector的工作原理3、Node Selector的用法1、例如:给node01 、node02 分别打上标签2、使用标签调度Pod3、删除节点的标签 💖Th…

java面试题(Redis)

事情干的差不多了,开刷面试题和算法,争取在短时间内快速成长,理解java面试的常见题型 一、redis使用场景: 缓存:穿透、击穿、雪崩 双写一致、持久化 数据过期、淘汰策略 分布式锁:setnx、redisson 计数…

武汉星起航推出亚马逊一站式孵化平台,助力合作伙伴快速成长

武汉星起航电子商务有限公司,自2020年正式成立以来,凭借其专业的运营团队和丰富的行业经验,在跨境电商领域取得了显著的成绩。为了进一步满足市场需求,武汉星起航决定推出亚马逊一站式孵化平台,旨在为合作伙伴提供更全…

网盘分享链接

点击打开下面这条链接,保存文件 https://pan.xunlei.com/s/VNuDMRtfBQvmfqqwjsBAIg2pA1?pwdhqd3 网盘里文件太多,找不到,怎么办? 进入我的B站主页【I泠霖I的个人空间-哔哩哔哩】 https://b23.tv/VYxaiJb,点击右上角的…

PC发送指令给单片机控制LED(与上一篇文章相反)

此时要重新配置寄存器 ,实现电脑往单片机传输数据 1、配置SCON寄存器的REN 即 REN 1 2、有TI(发送中断)就有RI(接收中断) 3、优化 发现发送 o 时,D5亮灯会有延迟 下面就是做到真正的无延迟的全双工通信 …

JVM基础

初识JAM JVM就是JAVA虚拟机,本质上是一个运行在计算机上的程序,他的职责是运行JAVA字节码文件. 下面是java代码执行过程 JVM的功能 1.解释和运行 对字节码文件中的指令实时的解释成机器码 2.内存管理 自动为对象,方法等分配内存自动的垃圾回…

27.WEB渗透测试-数据传输与加解密(上)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:26.WEB渗透测试-BurpSuite(五) BP抓包网站网址:http:…