12.2 ARM处理器概论

news2024/10/7 14:22:32

目录

ARM处理器概述

ARM公司概述

ARM的含义

ARM公司

ARM产品系列

早先经典处理器

Cortex-A系列

Cortex-R系列

Cortex-M系列

RISC处理器

RISC处理器(精简指令集处理器)

CISC处理器(复杂指令集处理器)

ARM指令集概述

指令集

指令

指令集

ARM指令集

ARM指令集

Thumb指令集

编译原理

ARM存储模型

字节序

ARM指令存储

ARM工作模式

ARM工作模式

工作模式的理解

ARM工作模式分类


ARM处理器概述

ARM公司概述

ARM的含义

ARM(Advanced RISC Machines)有三种含义

一个公司的名称、一类处理器的通称、一种技术

ARM公司

成立于1990年11月,前身为Acorn计算机公司

主要设计ARM系列RISC处理器内核

授权ARM内核给生产和销售半导体的合作伙伴,ARM公司并不生产芯片

提供基于ARM架构的开发设计技术软件工具、评估板、调试工具、应用软件 总线架构、外围设备单元等

ARM产品系列

早先经典处理器

包括ARM7、ARM9、ARM11家族

Cortex-A系列

针对开放式操作系统的高性能处理器 应用于智能手机、数字电视、智能本等高端运用

Cortex-R系列

针对实时系统、满足实时性的控制需求 应于汽车制动系统、动力系统等

Cortex-M系列

为单片机驱动的系统提供了低成本优化方案 应用于传统的微控制器市场、智能传感器、汽车周边等

 

RISC处理器

RISC处理器(精简指令集处理器)

只保留常用的的简单指令,硬件结构简单,复杂操作一般通过简单指令的组合实现,一般指令长度固定,且多为单周期指令 RISC处理器在功耗、体积、价格等方面有很大优势,所以在嵌入式移动终端领域应用极为广泛

CISC处理器(复杂指令集处理器)

不仅包含了常用指令,还包含了很多不常用的特殊指令,硬件结构复杂,指令条数较多,一般指令长度和周期都不固定

CISC处理器在性能上有很大优势,多用于PC及服务器等领域

ARM指令集概述

指令集

指令

能够指示处理器执行某种运算的命令称为指令(如加、减、乘 ...)

指令在内存中以机器码(二进制)的方式存在

每一条指令都对应一条汇编

程序是指令的有序集合

指令集

处理器能识别的指令的集合称为指令集

不同架构的处理器指令集不同

指令集是处理器对开发者提供的接口

ARM指令集

大多数ARM处理器都支持两种指令集:

这两种指令集在 ARM架构中处理器可以在ARM和thumb之间进行切换,两者可以在统一程序中混合使用

ARM指令集

所有指令(机器码)都占用32bit存储空间

代码灵活度高、简化了解码复杂度

执行ARM指令集时PC值每次自增4

Thumb指令集

所有指令(机器码)都占用16bit存储空间

代码密度高、节省存储空间

执行Thumb指令集时PC值每次自增2

编译原理

由于类似于“0101“的机器码难以维护,难以记忆,所以有了汇编语言,汇编语言与机器码一一对应,如将add对应0101的加,方便读、写、维护,但是汇编语言不可移植,因为其与CPU处理器中的机器元器件的机器码一一对应,所以有了高级语言C语言可以移植依赖于编译器

预处理:将注释进行删除,宏定义进行展开

编译:将C语言变为汇编语言

汇编:将汇编语言编程机器码

链接:将机器码与库中机器码合成

机器码(二进制)是处理器能直接识别的语言,不同的机器码代表不同的运算指令,处理器能够识别哪些机器码是由处理器的硬件设计所决定的,不同的处理器机器码不同,所以机器码不可移植

汇编语言是机器码的符号化,即汇编就是用一个符号来代替一条机器码,所以不同的处理器汇编也不一样,即汇编语言也不可移植

C语言在编译时我们可以使用不同的编译器将C源码编译成不同架构处理器的汇编,所以C语言可以移植

ARM存储模型

ARM采用32位架构,基本数据类型有以下三种

Byte 8bits

Halfword 16bits

Word 32bits

32位架构,单次可以运算32位的数据

数据存储

Word型数据在内存的起始地址必须是4的整数倍

Halfword型数据在内存的起始地址必须是2的整数倍

即数据本身是多少位在内存存储时就应该多少位对齐

字节序

大端对齐

低地址存放高位,高地址存放低位

a = 0x12345678;

小端对齐

低地址存放低位,高地址存放高位

a = 0x12345678;

注:ARM一般使用小端对齐

ARM指令存储

处理器处于ARM状态时

所有指令在内存的起始地址必须是4的整数倍

PC值由其[31:2]决定,[1:0]位未定义

处理器处于Thumb状态时

所有指令在内存的起始地址必须是2的整数倍

PC值由其[31:1]决定,[0]位未定义

注:即指令本身是多少位在内存存储时就应该多少位对齐

ARM工作模式

ARM工作模式

ARM有8个基本的工作模式

User 非特权模式,一般在执行上层的应用程序时ARM处于该模式

FIQ 当一个高优先级中断产生后ARM将进入这种模式

IRQ 当一个低优先级中断产生后ARM将进入这种模式

SVC 当复位或执行软中断指令后ARM将进入这种模式

Abort 当产生存取异常时ARM将进入这种模式

Undef 当执行未定义的指令时ARM将进入这种模式

System 使用和User模式相同寄存器集的特权模式

Monitor 为了安全而扩展出的用于执行安全监控代码的模式

工作模式的理解

不同模式拥有不同权限

不同模式执行不同代码

不同模式完成不同的功能

ARM工作模式分类

按照权限

User为非特权模式(权限较低),防止系统崩溃,其余模式均为特权模式(权限较高)

按照状态

FIQ、IRQ、SVC、Abort、Undef属于异常模式,即当处理器遇到异常后会进入对应的模式

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

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

相关文章

MQTT协议原理介绍及如何使用emqx

MQTT协议原理介绍及如何使用emqx 什么是MQTT协议 MQTT(Message Queuing Telemetry Transport)协议是一种轻量级的、基于发布/订阅模式的通信协议。它最初由IBM开发,用于在低带宽和不稳定的网络环境中传输小型数据包。MQTT协议被广泛应用于物…

二叉树题目:对称二叉树

文章目录 题目标题和出处难度题目描述要求示例数据范围进阶 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题:对称二叉树 出处:101. 对称二叉树 难度 3 级 题目描述 要求 给你一个二叉树的根结点 root \t…

Linux的编译器——gcc/g++(预处理、编译、汇编、链接)

文章目录 一.程序实现的两个环境二.gcc如何完成1.预处理2.编译3.汇编4.链接 三.动态库与静态库对比下二者生成的文件大小 四.gcc常用选项 前言: 本文主要认识与学习Linux环境下常用的编译器——gcc(编译C代码)/g(编译C代码&#x…

ECharts社区 合集整理

1、PPChart 地址:http://ppchart.com/#/ 2、DataInsight 地址:http://chartlib.datains.cn/echarts 3、isqqw 地址:https://www.isqqw.com/ 4、makeapie 地址:https://www.makeapie.cn/echarts 5、Chart.Top 地址: http://chart.…

【二维属性+贪心+双指针】Wannafly 挑战赛15 A

Wannafly挑战赛15_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com) 题意: 思路: 经典中的经典中的经典 还是一样双指针把可行解放入DS中,然后求最优解 值得注意的是,我们说的双指针的单调性&#xff0c…

SpringCloudAlibaba集成RocketMQ实现分布式事务事例(一)

SpringCloudAlibaba集成RocketMQ实现分布式事务事例(一) 业务需求 用户请求订单微服务 order-service 接口删除订单(退货),删除订单时需要调用 account-service的方法给账户增加余额,一个典型的分布式事务问题。 代码实现 事务消息有三种状态: TransactionStatus.Commi…

第162天:应急响应-网站入侵篡改指南Webshell内存马查杀漏洞排查时间分析

知识点 #知识点 -网页篡改与后门攻击防范应对指南 主要需了解:异常特征,处置流程,分析报告等 主要需了解:日志存储,Webshell检测,分析思路等 掌握: 中间件日志存储,日志格式内容介绍…

操作系统复习大纲

目录 第一章 操作系统引论 1. 理解操作系统的目标 2. 理解 OS 的作用 3. 理解操作系统的功能 4. 深入理解多道、并发 OS 的含义 5. 掌握多道批处理 OS、分时 OS、实时 OS 的基本特性,掌握分时 OS 基本特点 和响应时间概念和公式 Tn q。 6. 了解 OS 设计目的 7. 理解…

【枚举倍数】找一找

A-找一找_Wannafly挑战赛9 (nowcoder.com) 题意&#xff1a; 思路&#xff1a; 注意细节 ai1时特判 枚举时最好枚举 i Code&#xff1a; #include <bits/stdc.h>//#define int long longusing namespace std;const int mxn1e610; const int mxe1e510; const int m…

Spring面试题--SpringBoot自动配置原理

注解解析 面试回答 面试官&#xff1a;Springboot自动配置原理 候选人&#xff1a; 嗯&#xff0c;好的&#xff0c;它是这样的。 在Spring Boot项目中的引导类上有一个注解SpringBootApplication&#xff0c;这个 注解是对三个注解进行了封装&#xff0c;分别是&#xff1a;…

手写Spring底层原理

一.创建maven项目 二.创建对应的文件夹&#xff0c;分别是spring和nickel 说明&#xff1a;spring文件夹用于存放spring相关的文件&#xff0c;nickel用于存放相应的配置文件和相关被spring加载的bean对象。 三.创建对对应的文件 3.1创建CommponentScan注解文件 package com…

网工内推 | 国内知名云服务商,IE证书优先,最高18k*15薪

01 UCloud 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1、负责UCloud全球骨干网或数据中心网络工作&#xff0c;包括设备技术选型、架构运营方案设计、日常运维支持&#xff1b; 2、持续提升网络稳定性与性能。 任职要求&#xff1a; 1、本科及以上学历&#xff…

Vue中使用 file-saver 实现导出excel文件

1、先下载一波 file-saver yarn add file-saver 2、封装导出-接口的请求 需要修改请求的数据类型 responsetype 的值为 blob responsetype 默认值是 json 可省略不写 // 导出excel export function exportExcel() {return http({url: /sys/user/export,responseType: b…

TOPSIS法

优劣解距离法&#xff1a;评价类模型&#xff0c;有准确的评判标准后得到评分。 构造计算评分的公式&#xff1a; (x-min)/(max-min) 或(x-min)/((max-x)(x-min)) 指标类型 极大型指标&#xff1a;越大越好。 极小型指标&#xff1a;越小越好。 中间性指标&#xff1a;既…

JavaWeb实现学生管理系统

JavaWeb实现学生管理系统 一、项目介绍二、项目结构三、前期准备1.配置maven环境&#xff0c;在pom.xml配置文件中配置项目所依赖的jar包2.在MySql数据库中&#xff0c;创建登录注册表login和学生信息表student&#xff08;1&#xff09;登录注册表login&#xff08;2&#xff…

【C++】继承 | 基类和派生类对象赋值转换 | 派生类的默认成员函数 | 菱形继承

目录 1.继承的概念及定义 1.1继承的概念 1.2 继承定义 1.2.1定义格式 1.2.2继承关系和访问限定符 1.2.3继承基类成员访问方式的变化 2.基类和派生类对象赋值转换 3.继承中的作用域 4.派生类的默认成员函数 5.继承与友元 6. 继承与静态成员 7. 菱形继承 1.继承的概念…

【InsCode Stable Diffusion美图活动一期】——海边跳舞的少女

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

window平台下MSVC2015编译Libyuv静态库 动态库

window平台下MSVC2015编译Libyuv静态库 动态库 编译步骤一、环境准备1.1 下载libyuv源码1.2 下载安装cmake&#xff1a;1.3 安装MobaXterm&#xff08;终端工具&#xff09; 二、编译生成静态&#xff0c;动态库2.1 cmake编译生成Visual Studio工程2.2 使用Visual Studio打开YU…

怎么从视频中提取音频?分享三个方法给大家!

如何从视频中提取音频&#xff1f;当我们观看视频时&#xff0c;经常会听到很好听的音乐&#xff0c;或者希望下载视频课程的音频以便随时学习。有时候&#xff0c;某些音频可能没有单独的音源或无法下载。那么&#xff0c;有什么方法可以将视频中的音频提取出来呢&#xff1f;…

第五章:Mask R-CNN网络详解

(目标检测篇&#xff09;系列文章目录 第一章:R-CNN网络详解 第二章:Fast R-CNN网络详解 第三章:Faster R-CNN网络详解 第四章:SSD网络详解 第五章:Mask R-CNN网络详解 第六章:YOLO v1网络详解 第七章:YOLO v2网络详解 第八章:YOLO v3网络详解 文章目录 系列文章目录技…