arm工作模式、arm9通用寄存器、异常向量表中irq的异常向量、cpsr中的哪几位是用来设置工作模式以及r13,r14,15别名是什么?有什么作用?

ARM

首先先介绍一下ARM公司。
ARM成立于1990年11月,前身为Acorn计算机公司
主要设计ARM系列RISC处理器内核
授权ARM内核给生产和销售半导体的合作伙伴ARM公司不生产芯片
提供基于ARM架构的开发设计技术软件工具评估版调试工具应用软件总线架构外围设备单元等等

CPU中央处理器

首先在芯片中,中央处理器(CPU) 是一台计算机的运算核心和控制核心。
CPU、内部存储器和输入/输出设备是电子计算机三大核心部件。其功能主要是解释计算机指令以及处理计算机软件中的数据。
CPU细分的话可以分为:Kernel(也称为ARM内核) 和外设。

ARM内核

在ARM内核中,主要包括:
ALU:算数逻辑单元
RO~R12:通用寄存器(不可被寻址)
PC:程序寄存器
LR:连接寄存器
SP:栈指针寄存器
Cache:高速缓存
MMU:内存管理单元

因为处理器的编码是一串数字,比较难记,因此开发出了助记符号来降低开发难度提高效率,所以产生了汇编语言,由于汇编语言的结构不是很清晰,因此人们采用了汇编语言来产生较高层次的语言(如C语言)。
编译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器语言)的翻译过程。
所以编译流程分为四个步骤:
编译流程分为四个步骤:

预处理(Pre-Processing)
编译(Compiling)
汇编(Assembling)
链接(Linking

ARM三级存储系统

三级存储系统					速度		容量		价格		
Cache								快		小		贵
主存储器(RAM)			中		中		小贵
辅助存储器(ROM)		慢		大		便宜

高速缓冲存储器(Cache)中,CPU可以直接访问,用来存放当前正在执行的程序中的活跃部分,以便快速地向CPU提供指令和数据。
主存储器中,可由CPU直接访问,用来存放当前正在执行的程序和数据。
辅助存储器中,设置在主机外部,CPU不能直接访问,用来存放暂时不参与运行的程序和数据,需要时再传送到主存。

RAM分类

(1)sram(static ram) 用晶体管存储0、1。速度快,成本高,存储密度低。
(2)dram(dynamic ram) 动态存储,用电容充放电存储0,1。功耗大,需要外接刷新电路,读写速度低于sram。成本低,存储密度大。
(3)sdram(synchronous dram) 增加了同步电路,提高dram的数据读写速度。
(4)ddr ram (全称ddr sdram即double data rate sdram),为sdram的下一代。目前已发展到ddr5。
(5)iram (internal ram)注意iram并非是真正意义上的某种ram,通常iram就是sram,它通常存在于Soc内部,所以被称为iram。

ROM分类

(1)rom 非易失性存储器,最早的rom在出场时写入数据,之后无法更改。
(2)prom (programmable rom)可编程rom。出场后能够让用户写入一次数据,例如cdrom。
(3)eprom (erasable prom)可擦写prom,出场后可以擦除数据再次写入,但需要特殊的设备。如紫外光等。
(4)eeprom (electically eprom)电可擦写可编程rom,无需专用设备就可以擦写,编程。
(5)flash 闪存,新一代非易失性存储器。
flash存储器可以分为:
①nor(或非) flash :可以被寻址,但是价格贵
②nand(与非) flash

以上就是背景

ARM的工作模式

ARM有7个基本工作模式:
(1)User:非特权模式,大部分任务执行在这种模式
(2)FIQ:当一个高优先级(fast)中断产生时将会进入这种模式
(3)IRQ:当一个低优先级(normal)中断产生时将会进入这种模式
(4)Supervisor:当复位或软中断指令执行时将会进入这种模式
(5)Abort:当存取异常时将会进入这种模式
(6)Undef:当执行未定义指令时会进入这种模式
(7)System:使用和User模式相同寄存器集的特权模式
Cortex-A特有模式
Monitor:是为了安全而扩展出的用于执行安全监控代码的模式;也是一种特权模式

ARM9的通用寄存器

这个内容上面已经介绍过
在这里插入图片描述

ARM 寄存器

ARM 有37个32-Bits长的寄存器. 
1个用作PC( program counter)
1个用作CPSR(current program status register)
5个用作SPSR(saved program status registers)
30 个通用寄存器

Cortex体系结构下有40个32-Bits长的寄存器

Cortex-A多出3个寄存器,Monitor 模式 r13_mon , r14_mon, spsr_mon

当前处理器的模式决定着哪组寄存器可操作. 任何模式都可以存取:
相应的r0-r12子集
相应的 r13 (the stack pointer, sp) and r14 (the link register, lr)
相应的 r15 ( the program counter, pc)
相应的CPSR(current program status register, cpsr)
特权模式 (除system模式) 还可以存取;
相应的 spsr (saved program status register)

异常向量表中irq的异常向量是多少?

在这里插入图片描述

在这里插入图片描述

cpsr中的哪几位是用来设置工作模式的?

在这里插入图片描述
M[4:0]:用来设置工作模式
User 模式下,不能操作 bit[4:0],即不能切换处理器模式
更常见的情况是,处理器因异常事件而自动改变模式。
处理器模式
ARM有9个基本工作模式:
(1)User(USR):10000
(2)FIQ:10001
(3)IRQ:10010
(4)Supervisor(SVC):10011
(5)Monitor(MON):10110
(6)Abort(ABT):10111
(7)Hyp(HYP):11010
(8)Undef(UND):11011
(9)System(SYS):11111

T Bit
T = 0;J=0; 处理器处于 ARM 状态
T = 1;J=0 处理器处于 Thumb 状态
T = 1;J=1 处理器处于 ThumbEE 状态

中断禁止位
I = 1: 禁止 IRQ.
F = 1: 禁止 FIQ

A位
A=1 禁止不精确的数据异常

E位
大小端控制位

IT[7:2]
IF….THEN….指令执行状态位

GE[3:0]
大于或等于(当执行SIMD指令时有效)

DNM位
Do Not Modify

J 位
仅ARM v5TE-J架构支持
T=0;J = 1 处理器处于Jazelle状态
也可以和其他位组合

Q 位
仅ARM v5TE-J架构支持
指示饱和状态

条件位
N = Negative result from ALU
Z = Zero result from ALU
C = ALU operation Carried out or borrow
V = ALU operation oVerflowed

r13,r14,15别名是什么?有什么作用?

R13:SP(栈指针寄存器)
每一种异常模式都有其自己独立的R13,它通常指向异常模式所专用的堆栈,也就是说五种异常模式、非异常模式(用户模式和系统模式),都有各自独立的堆栈,用不同的堆栈指针来索引。这样当ARM进入异常模式的时候,程序就可以把一般通用寄存器压入堆栈,返回时再出栈,保证了各种模式下程序的状态的完整性。

R14:LR(连接寄存器)
它有两个特殊功能。
(1)保存子程序返回地址。使用BL或BLX时,跳转指令自动把返回地址放入r14中;子程序通过把r14复制到PC来实现返回。
(2)当异常发生时,异常模式的r14用来保存异常返回地址,将r14如栈可以处理嵌套中断。

R15:PC(程序寄存器)
PC是有读写限制的。当没有超过读取限制的时候,读取的值是指令的地址加上8个字节,由于ARM指令总是以字对齐的,故bit[1:0]总是00。当用str或stm存储PC的时候,偏移量有可能是8或12等其它值。在V3及以下版本中,写入bit[1:0]的值将被忽略,而在V4及以上版本写入r15的bit[1:0]必须为00,否则后果不可预测。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 基于微信小程序的智能停车场管理小程序

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

【七 (1)FineBI FCP模拟试卷-股票收盘价分析】

目录 文章导航一、字段解释二、需求三、操作步骤1、添加计算字段(每月最后一天的收盘价)2、绘制折线图 文章导航 【一 简明数据分析进阶路径介绍(文章导航)】 一、字段解释 Company Name:公司名称 Date:…

亚远景科技-ASPICE 4.0-HWE硬件过程的范围 The Technical Scope of HW process

ASPICE 4.0中的HWE process是电气和电子硬件的技术范畴,涵盖了硬件工程中的需求分析、设计和验证活动,但不包括以下活动: 1. 系统级工程过程。既不包括机电一体MECHATRONIC,也不包括ECU特定电子控制单元的开发。 2. 硬件采购过程…

TQ15EG开发板教程:在MPSOC上运行ADRV9009(vivado2018.3)

首先需要在github上下载两个文件,本例程用到的文件以及最终文件我都会放在网盘里面, 地址放在最后面。在github搜索hdl选择第一个,如下图所示 GitHub网址:https://github.com/analogdevicesinc/hdl/releases 点击releases选择版…

Python根据主播直播时间段判定订单销售额归属

写在前面:最近在群里看到一个这样的直播电商的场景觉得还是挺有趣的,于是就想用Python来实现。 需求描述:根据主播直播时间段结合销售订单的付款时间判断所属销售的归属 生成主播在线直播时间段数据 from datetime import datetime, timed…

Linux 使用 ifconfig 报错:Failed to start LSB: Bring up/down networking

一、报错信息 在运行项目时报错数据库连接失败,我就想着检查一下虚拟机是不是 Mysql 服务忘了开,结果远程连接都连接不上虚拟机上的 Linux 了,想着查一下 IP 地址看看,一查就报错了,报错信息: Restarting…

Github 2024-04-14 php开源项目日报Top9

根据Github Trendings的统计,今日(2024-04-14统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目9TypeScript项目1Laravel: 以优雅语法简化Web开发 创建周期:4028 天开发语言:PHP协议类型:MIT LicenseStar数量:30824 个Fork数量:1…

L1 【哈工大_操作系统】什么是操作系统

从本期开始,笔者将出一系列哈工大的《操作系统》课堂要点笔记,该课程应该算得上是国内最好的操作系统课程之一,也是哈工大CS课程含金量最高的课程之一。尤其是对于想学习国外课程《MIT 6.S081》《MIT 6.828》又基础不足的同学, 特…

【生产案例面试题】JVM调优

写作目的 最近上线了一个需求,遇到了一个JVM报警的问题,很荣幸能遇到,在此分享一下整个调优的过程。 背景 我们是中台服务,我们的甲方就是上游不同的业务。中台原则上是业务和能力分离,但是不可避免的是分不开&…

年龄与疾病c++

题目描述 某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理,按照0-18岁、19-35岁、36-60岁、61以上(含61)四个年龄段统计的患病人数以及占总患病人数的比例。 输入 共2行,第一行为过…

android支付宝接入流程

接入前准备 接入APP支付能力前,开发者需要完成以下前置步骤。 本文档展示了如何从零开始,使用支付宝开放平台服务端 SDK 快速接入App支付产品,完成与支付宝对接的部分。 第一步:创建应用并获取APPID 要在您的应用中接入支付宝…

python输入某年某月某日判断这一天是这一年的第几天

如何使用python实现输入某年某月某日判断这一天是这一年的第几天 from datetime import datetime #引入日期类 def is_leap_year(year):"""判断是否为闰年"""return (year % 4 0 and year % 100 ! 0) or (year % 400 0)# 根据年份和月份返回当…

兮兮牧场养殖小游戏积分兑换互动商城引流模式

刚注册的新会员必须要进入牧场才能激活所有功能 一、获得动物的途径的方式 第一种是邀请好友注册获得,第二种是看广告获得 邀诘好友注册获得动物明细: 1、从兮兮牧场的邀请好友的链接去邀请好友才能获得,其他邀请码无效 2、注册赠送小鸡一只; 3、邀…

【七 (4)FineBI FCP模拟试卷-电站数据分析】

目录 文章导航一、字段解释1、电站基础信息表2、电站事实表 二、需求三、操作步骤1、将新增一列日期12、以左关联的形式增加装机容量3、年度发电总量4、年度售电完成率4、发电量及发电效率5、年售电完成比、售电回款比、管理费用比、运维费用比5、总装机容量6、最近日期7、最近…

005Node.js模块URL的使用

引入 URL 模块 要使用 URL 模块,首先需要在代码中引入它。可以使用以下代码将 URL 模块导入到你的脚本中: const url require(url);实例代码 const urlrequire(url); var apihttp://www.baidu.com?nameshixiaobin&age20; console.log(url.parse(…

去中心化社交媒体:分析 Facebook 在区块链平台上的角色

在当今数字时代,社交媒体已经成为人们日常生活中不可或缺的一部分。然而,随着人们对数据隐私和信息控制的关注不断增加,传统的中心化社交媒体平台也面临着越来越多的质疑和挑战。为了应对这些挑战,越来越多的人开始探索去中心化社…

03 Git 之 远程仓库 + IDEA 集成使用 GitHub

1. 远程仓库 origin:即远程仓库 url 的指代。 从网上随意 clone 一个仓库,进入 .git/config 文件, 即可编辑远程仓库的 url,也可以自定义想要指代该 url 的名词。 1.1 本地仓库绑定远程仓库 并 推送、拉取 git remote add 【想要起的指代…

Java基础-知识点03(面试|学习)

Java基础-知识点03 String类String类的作用及特性String不可以改变的原因及好处String、StringBuilder、StringBuffer的区别String中的replace和replaceAll的区别字符串拼接使用还是使用StringbuilderString中的equal()与Object方法中equals()区别String a new String("a…

「51媒体网」汽车类媒体有哪些?车展媒体宣传

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 汽车类媒体有很多,具体如下: 汽车之家:提供全面的汽车新闻、评测、导购等内容。 爱卡汽车:同样是一个综合性的汽车信息平台,涵…

WPS二次开发系列:Gradle版本、AGP插件与Java版本的对应关系

背景 最近有体验SDK的同学反馈接入SDK出现报错,最终定位到原因为接入的宿主app项目的gradle版本过低导致,SDK兼容支持了android11的特性,需要对应的gradle插件为支持android11的版本。 现象 解决方案 将gradle版本升级至支持android11的插件版…