ARM体系结构及接口技术介绍(一)相关概念 寄存器

news2024/9/8 23:03:07

文章目录

  • 一、ARM相关概念
      • 1. 机器码:计算机可以识别的0和1组成的特殊的编码
      • 2. 汇编指令:编译器可以将每条汇编指令编译生成特定的计算机可以识别的机器码
      • 3. 汇编指令集:很多具有不同功能的汇编指令的集合
      • 4. 架构:基于不同的汇编指令集设计不同的架构,架构就是汇编指令集的版本的命名
      • 5. 内核:基于不同的架构设计不同的内核
      • 6. 处理器
  • 二、RISC和CISC的区别
    • (一)RISC---精简指令集
    • (二)CISC---复杂指令集
  • 三、ARM内核处理器的工作模式
    • (一)Cortex-M4核处理器的工作模式
    • (二)Cortex-A7核处理器的工作模式
      • 1. 特权模式
        • (1)异常模式
        • (2)非异常模式
      • 2. 非特权模式
      • 3. monitor模式
      • 4. HYP模式
  • 四、ARM-v7架构的寄存器组织
    • (一)寄存器的位置
    • (二)寄存器介绍
    • (三)特殊的寄存器
      • 1. R13寄存器
      • 2. R14寄存器
      • 3. R15寄存器
      • 4. CPSR寄存器
      • 5. SPSR寄存器

一、ARM相关概念

1. 机器码:计算机可以识别的0和1组成的特殊的编码

0:表示低电平信号(0V)
1:表示高电平信号(5V/3.3V/1.8V)

2. 汇编指令:编译器可以将每条汇编指令编译生成特定的计算机可以识别的机器码

计算机只写机器码指令时,可以完成一个特定的功能

3. 汇编指令集:很多具有不同功能的汇编指令的集合

4. 架构:基于不同的汇编指令集设计不同的架构,架构就是汇编指令集的版本的命名

x86-64架构、ARM架构、RISC-V架构、Mips架构…

ARM架构:
arm-V1架构~arm-V6架构:目前已经淘汰
arm-V7架构:
arm-V8架构:
arm-V9架构:最新的64位ARM架构,未来十年主流ARM架构

5. 内核:基于不同的架构设计不同的内核

Cortex-A7内核 : 基于ARM-v7架构设计
Cortex-A9内核 : 基于ARM-v7架构设计
Cortex-A53/A55内核 : 基于ARM-v8架构设计
Cortex-A72/A76/A78 : 基于ARM-v8架构设计
Cortex-A710/A720/A510/A520 : 基于ARM-v9架构设计
Cortex-X3/X4 : 基于ARM-v9架构设计

ARM公司基于不同的ARM架构设计不同性能的ARM内核,然后ARM公司将ARM内核授权给
芯片产商,芯片厂商基于ARM内核在添加很多外设控制器,设计对应的处理器。

比如:ARM公司将Cortex-x4核,Cortex-A720核,Cortex-A520核,授权高通公司,
高通公司基于以上内核设计了骁龙8 Gen 3处理器。
ARM公司将COrtex-A7核Cortex-M4核授权给ST(意法半导体)公司,
ST公司基于以上内核设计了STM32MP157A处理器。
ST : 意法半导体公司
M : 微处理器
32 :32位处理器
MP : 系列,微处理器,可以运行操作系统
157A : 处理器性能相关的

6. 处理器

芯片厂商获取ARM内核授权之后,基于ARM内核设计处理器
CPU:中央处理单元
MPU:微处理器,一般指可以运行linux操作系统的
MCU:微处理器,一般指单片机
SOC:片上系统,MPU、MCU都可称为SOC

每个汇编指令都对应一个运算器,实现对应的指令的功能
每个运算器都是一个硬件,由硬件完成运算器对应的功能
在这里插入图片描述

二、RISC和CISC的区别

(一)RISC—精简指令集

ARM架构/Mips架构/PowerPC架构/RISC-v架构使用的汇编指令集是精简指令集

精简指令集的指令相对简单,指令周期和宽度是固定的
指令的宽度:汇编指令被编译生成机器码,将机器码存到代码段,每条汇编指令的机器码在代码段占用的内存空间固定。ARM汇编指令占4字节
指令的周期:执行一条汇编指令需要的时钟的周期的个数,ARM汇编指令的周期固定

CPU主频:CPU运行的频率
周期和频率成反比:周期=1s/频率

(二)CISC—复杂指令集

x86-64架构使用的指令集是复杂指令集

复杂指令集对应的汇编指令的周期和指令的宽度不固定

file filename 查看文件属性命令
objdump -D filename > filename2.dis

三、ARM内核处理器的工作模式

(一)Cortex-M4核处理器的工作模式

M4核只有两种工作模式:线程模式、异常模式

线程模式:用户模式
异常模式:当发生异常事件时,如中断

(二)Cortex-A7核处理器的工作模式

Cortex-A7核有九种工作模式,在不同工作模式下完成工作

1. 特权模式

(1)异常模式

IRQ异常模式(普通中断异常模式)
FIQ异常模式(快速中断异常模式)
SVC异常模式(管理异常模式)
Undef异常模式(未定义异常模式)
Abort异常模式(中止异常模式)

(2)非异常模式

System模式:属于用户模式的特权模式

2. 非特权模式

User模式:主要执行用户代码

3. monitor模式

安全监控模式,主要执行安全相关代码

4. HYP模式

主要针对虚拟化技术的支持

四、ARM-v7架构的寄存器组织

(一)寄存器的位置

在这里插入图片描述

一块具有特殊用途的内存空间,就可以称之为寄存器。

定义变量的6种存储类型:auto static extern const register volatile
register对应变量的特点:访问速度快,保存在寄存器上,因此寄存器类型的变量不能取地址。

硬盘:掉电数据不丢失
用于保存没有运行的程序或者数据
内存:掉电数据丢失
用于存放正在运行的程序或者数据
寄存器:内核上有一块空间
大小有限,只有几百字节。该块空间没有地址,只能通过R0-R15变化来访问,

(二)寄存器介绍

在这里插入图片描述

  1. 寄存器通过编号进行访问R0-R15
  2. 每种工作模式只能访问自己工作模式下对应的寄存器
    User和SYS最多访问17个寄存器;
    FIQ,IRQ,ABT,SVC,UND,MON模式最多访问18个寄存器
    HYP模式最多访问19个寄存器。
  3. 寄存器没有地址,只能通过每个寄存器的编号进行访问
  4. Banked类型的寄存器表示私有的寄存器,只有对应的异常模式才可以访问对应的私有的寄存器;
    非Banked类型的寄存器表示公有的寄存器;
    没有对应的私有寄存器才可以访问公有的寄存器。
  5. 对于ARM-v7架构而言,每个寄存器大小为4字节

(三)特殊的寄存器

1. R13寄存器

R13 别名:SP The Stack Pointer 栈指针寄存器
作用:栈指针寄存器中存储的是栈空间的地址,主要用于压栈保存现场,出栈恢复现场

在这里插入图片描述

2. R14寄存器

R14 别名:LR The Link Register 链接寄存器
作用:用来保存返回地址
在这里插入图片描述

3. R15寄存器

R15 别名:PC The Program Counter 程序寄存器
作用:PC寄存器中存储的是当前取指指令
从代码段中根据指令的地址,读取指令的机器码,每完成一次取指令的操作之后,PC会自动加4(每条ARM指令占4字节内存空间)指向下一条指令
在这里插入图片描述

4. CPSR寄存器

CPSR Current Program State Register 当前程序状态寄存器
存储当前程序的运行状态,所有工作模式共用一个CPSR

  1. N [31]
    指令执行结果为负数时,N位被自动置1,否则为0

  2. Z [30]
    指令执行结果为0时,Z位被自动置1,否则为0

  3. C [29]
    加法:产生进位时,C位被自动置1,否则为0
    进位是低32位向高32位进位时,加法指令一次就可以完成32位以内数据的加法
    减法:产生借位时,C位被自动清0,否则为1
    借位是低32位向高32位借位时,减法指令一次就可以完成32位以内数据的减法

  4. V [28]
    符号位发生变化时,V位被自动置1,否则为0

  5. I [7]
    IRQ异常中断屏蔽位,
    I=0:不屏蔽IRQ中断;
    I=1:屏蔽IRQ中断

  6. F [6]
    FIQ异常中断屏蔽位
    F = 0 : 不屏蔽FIQ中断
    F = 1 : 屏蔽FIQ中断

  7. T [5]
    状态位
    T=0:ARM状态,执行ARM汇编指令集
    T=1:Thumb状态,执行Thumb汇编指令集,每条汇编指令的机器码占2个字节

  8. M [4:0]
    处理器工作模式位

10000 User mode;
10001 FIQ mode;
10011 SVC mode;
10111 Abort mode;
11011 Undfined mode;
11111 System mode;
10110 Monitor mode;
10010 IRQ mode

5. SPSR寄存器

SPSR Save Program State Register 保存当前程序状态寄存器
用于对CPSR寄存器进行备份,每种异常模式下都有一个私有的SPSR寄存器
在这里插入图片描述

工作状态切换:
保存现场:
先保存CPSR寄存器到SPSR

恢复现场:
恢复SPSR到CPSR
恢复LR到PC寄存器

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

resistronic焊接机RMF10 RE120安装SSK10说明操作

resistronic焊接机RMF10 RE120安装SSK10说明操作

新开发的软件老被系统拦截有什么办法解决吗?

一套新开发的软件要想在windows操作系统畅通无阻,那就需要使用代码签名证书,只要是对软件进行实名从而证明软件发布者身份,确保该软件是一个合法有效的主体开发的,也是让这个软件开发者承担相应的责任。 特别主要如果要获得即时性…

【AI前沿】深度学习:技术、发展与前沿应用

文章目录 一、深度学习的背景与发展1.1 背景1.2 早期发展1.3 突破性进展1.4 近年发展 二、深度学习的基本概念2.1 神经网络2.2 多层感知器(MLP)2.3 卷积神经网络(CNN)2.4 循环神经网络(RNN)2.5 生成对抗网络…

【结构型模式-代理模式】

概述 由于某些原因需要给某对象提供一个代理以控制该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象与目标对象之间的中介。 Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理代理类在编译期就生…

Linux--网络设置

目录 一、测试网络连接 1、查看网络接口信息 1.1 ifconfig 命令---查看网络接口信息 1.1.1 ifconfig 网卡 #单独查看某个网卡 1.1.2 ifconfig -a #显示所有活动及非活动的连接 二、修改网络配置文件 三、设置网络接口参数 3.1 启用、禁用网络接口配置 3.2 hostn…

数据库数据恢复—SQL Server数据库由于存放空间不足报错的数据恢复案例

SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生…

Python爬虫速成之路(1):获取网页源代码

hello hello~ ,这里是绝命Coding——老白~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页:绝命Coding-CSDN博客 &a…

LLM-阿里云 DashVector + ModelScope 多模态向量化实时文本搜图实战总结

文章目录 前言步骤图片数据Embedding入库文本检索 完整代码 前言 本文使用阿里云的向量检索服务(DashVector),结合 ONE-PEACE多模态模型,构建实时的“文本搜图片”的多模态检索能力。整体流程如下: 多模态数据Embedd…

【python】QWidget父子关系,控件显示优先级原理剖析与应用实战演练

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

变位齿轮的齿高好像不变

通过这个软件的计算,变位尺寸的大小径都会同时变化,从而整个齿高好像没有变化。 下面百度答案

中国AI已遥遥领先

关注卢松松,会经常给你分享一些我的经验和观点。 种种迹象表明,中国的AI产业是仅次于美国的存在,中国的AI已经遥遥领先,其他国家。 根据中国信息通信研究院发布的报告称: 根据中国信息通信研究院近日发布的《全球…

LabVIEW远程实验数据采集系统

随着科学研究的不断发展,实验室对远程数据采集和监控的需求越来越高。传统的数据采集方式往往需要实验人员亲临现场,费时费力,且数据实时性较差。为了解决这些问题,基于LabVIEW开发了一套远程实验数据采集系统,实现对实…

网络建设与运维23国赛网络运维正式赛题解析

竞赛环境请看主页! 23国赛网络运维 任务描述:某集团公司在更新设备后,路由之间无法正常通信,请修 复网络达到正常通信。 (1) 请在server1“管理员”下拉菜单中选择“镜像”选项卡,点 击 “创…

就业平台小程序的设计

管理员账户功能包括:系统首页,个人中心,学生管理,企业管理,企业类型管理,留言板管理,系统管理 微信端账号功能包括:系统首页,招聘信息,简历,我的…

centos安装数据库同步工具sqoop并导入数据,导出数据,添加定时任务

目录 1.安装jdk 1.1上传jdk安装包到/opt目录下并解压 1.2解压 1.3配置环境变量 2.安装hadoop 2.1.下载hadoop 2.2.解压hadoop 2.3配置环境变量 3.安装sqoop 3.1下载 3.2解压 3.3下载依赖包并复制到指定位置 3.3.1下载commons-lang-2.6-bin.tar.gz 3.3.2将mysql-c…

2024Q2全球PC市场:联想增3.7%、苹果增20.8%

7月9日,IDC发布最新PC市场报告,称2024年第2季度全球PC出货量 6490 万台,同比增长3.0%,尽管整体市场得益于与2023年较低数据的有利比较,但中国的PC市场仍处于疲软态势。除中国外,全球出货量同比增长超过5%。…

ubuntu部署minio集群

minio集群介绍 官方文档:https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html 本方案采用在多节点多驱动器 (MNMD) 或“分布式”配置部署 MinIO。 MNMD 部署提供企业级性能、可用​​性和可扩展性&#…

【每日一练】python面对对象的基本概念和用法(附实例)

面向对象编程(OOP)是一种程序设计方法,其基本概念包括对象、类、继承和封装。 对象:对象是系统中的基本单位,用于描述客观事物。每个对象包含一组属性和对这些属性进行操作的方法。对象是类的一个实例,具有…

10-《木棉》

木 棉 木棉又名红棉、英雄树、攀枝花、斑芝棉、斑芝树、攀枝,属木棉科,落叶大乔木,原产印度。木棉是一种在热带及亚热带地区生长的落叶大乔木,高10-25米。树干基部密生瘤刺,以防止动物的侵入。木棉外观多变…

Dart笔记:Isolate及其通信机制

Dart笔记 多隔离及其通信机制 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/a…