day2 ARM处理器概论

news2024/11/28 14:16:43

目录

RISC处理器和CISC处理器

 SOC(System on Chip)

ARM指令集概述

指令集

ARM指令集

编译原理

ARM存储模型

 ARM指令存储

 ARM工作模式

工作模式的理解

ARM工作模式分类


RISC处理器和CISC处理器

 RISC处理器

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

 CISC处理器

  •     不仅包含了常用指令,还包含了很多不常用的特殊指令,硬件结构复杂,指令条数较多,一般指令长度和周期都不固定
  •     CISC处理器在性能上有很大优势,多用于PC及服务器等领域

 SOC(System on Chip)

    即片上系统,将一个系统中所需要的全部部件集成在一个芯片中在体积、功耗、价格上有很大优势

ARM指令集概述

指令集

 指令

  •     能够指示处理器执行某种运算的命令称为指令(如加、减、乘 ...)
  •     指令在内存中以机器码(二进制)的方式存在
  •     每一条指令都对应一条汇编
  •     程序是指令的有序集合

 指令集

  •     处理器能识别的指令的集合称为指令集
  •     不同架构的处理器指令集不同
  •     指令集是处理器对开发者提供的接口

ARM指令集

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

 ARM指令集:

  •     所有指令(机器码)都占用32bit存储空间
  •     代码灵活度高、简化了解码复杂度
  •     执行ARM指令集时PC值每次自增4

 Thumb指令集:

  •     所有指令(机器码)都占用16bit存储空间
  •     代码密度高、节省存储空间
  •     执行Thumb指令集时PC值每次自增2

编译原理

 

  •  机器码(二进制)是处理器能直接识别的语言,不同的机器码代表不同的运算指令,处理器能够识别哪些机器码是由处理器的硬件设计所决定的,不同的处理器机器码不同,所以机器码不可移植
  •  汇编语言是机器码的符号化,即汇编就是用一个符号来代替一条机器码,所以不同的处理器汇编也不一样,即汇编语言也不可移植
  •  C语言在编译时我们可以使用不同的编译器将C源码编译成不同架构处理器的汇编,所以C语言可以移植(C语言可以移植的原因是编译器的不同

ARM存储模型

字节序:

大端对齐

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

    a = 0x12345678;

 小端对齐

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

    a = 0x12345678;

注:ARM一般使用小端对齐

 ARM指令存储

 处理器处于ARM状态时

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

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

 处理器处于Thumb状态时

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

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

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

 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/620342.html

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

相关文章

你觉得你很优秀,为什么连一个软件测试面试都过不了?

目录 前言 简历请用数字化结果不要只是堆研工作经历 简历一:我的工作内容有 简历二:我的工作内容有: 当你和HR面对面坐下来时,迎接我们的第一个问题往往是:“来,请简单介绍下你自己吧。 了解你的过去是判断你未来的最好方式 增加好印象&#xff0c…

基于SVM的鸢尾花数据集回归分析

目录 1. 作者介绍2. SVM支持向量机算法2.1 鸢尾花数据集2.2 鸢尾花数据集可视化2.2.1 散点图2.2.2 箱型图2.2.3 三维散点图(3D) 3. SVM算法实现3.1 完整代码3.2 运行结果3.3 问题与分析 1. 作者介绍 张佳伦,男,西安工程大学电子信…

androidstudio ffmpeg 音频转换

java-ffmpeg-音频转换 需求描述功能流程所需条件步骤步骤1步骤2步骤3一些我使用中遇到的异常 需求描述 项目中的语音唤醒后的语音识别人声检测一直是一个很令我头痛的问题,之前因为对各种类型的工具包使用不熟练,以及时间问题,一直没有根治这个人声检测体验不好的问题,之前的解…

不同品牌或型号的单片机

以下是一些常见的单片机品牌和型号: 微控制器(Microchip):PIC系列(如PIC16F877A、PIC18F4550) 瑞萨电子(Renesas):RX系列(如RX231、RX65N)需要资…

Termius 最好用的SSH 连接工具

Termius 最好用的SSH 连接工具 一、环境准备二、配置2.1 terminus 安装2.2 删除自动更新2.3 修改用户信息 三、使用四、页面展示 该工具 mac os 可直接使用 本文只展示 windows 使用步骤,本教程使用的 termius 版本为 7.59.6 一、环境准备 termius 下载 官网下载地址…

ubuntu上安装docker报错

执行docker命令的时候报错如下: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 为了解决这个问题,看了一些帖子有的说重启docker.service服务或者看该服务是否已经正常启动,结果网上…

超实用!新手项目经理掏心窝总结的经验

像项目这样复杂的环境中,往往会出现错误判断、沟通不畅、管理不善以及最常见的错误。因此,项目管理需要项目经理有广泛的经验、洞察力和技能,无论是规划、组织还是有效领导团队,以在规定的时间和预算内实现项目目标。在这种情况下…

基于BAT指令定时备份Oracle并发送邮件

前言 在企业级应用程序中,数据是非常重要的资源。因此,我们需要定期备份数据以确保其安全性和完整性。在Oracle数据库中,我们可以使用多种方法来备份数据,其中一种方法是使用BAT脚本来进行自动化备份。 在本文中,我们…

【AI实时变声器,声音甜甜的小姐姐背后竟是抠脚大汉】

前言 这是一款基于AI算法的实时变声器,如果你不懂AI也没事,直接使用我提供的一键安装包 链接:https://pan.baidu.com/s/1f3X6JdBVOgeTNPf0B3CRKg 提取码:k5v2 变声器安装使用 有两款变声器,都是基于RVC做的&#xf…

ctfshow——web入门 SSRF

web351web352web353web354web355web356web357web358web359web360 web351 通过hackbar post提交 urlhttp://127.0.0.1/flag.php 获得flag web352 将127.0.0.1和localhost给过滤了,但并不影响post提交 post urlhttp://127.0.0.1/flag.php web353 过滤了localhost和1…

python基础学习1

pyhton数据分析的优势: ①语法简单精炼 ②有很强大的库 ③功能强大 ④适用于构建生产系统 ⑤胶水语言 python数据分析常用的类库: ①IPython------科学计算标准工具集的组成部分 ②NumPy------python科学计算的基础包 ③SciPy--------解…

【手撕Spring源码】深度理解SpringBoot

文章目录 Tomcat内嵌容器Tomcat 基本结构创建Tomcat内嵌容器内嵌Tomcat集成Spring 容器 Boot 自动配置什么是自动配置类自动配置类原理Aop自动配置DataSource自动配置MyBatis自动配置事务自动配置MVC自动配置条件装配 附:注解小总EnableConfigurationPropertiesCond…

RWKV配上ChatGPTBox让我们在浏览器中感受AI带来的魅力

这次我们来讲讲RWKV搭配ChatGPTBox结合使用带来的功能体验,这两个项目都是同一个大神创建的,完全可以无缝搭配进行使用。 以下是我之前在本地部署了AI模型RWKV的教程,如果还没有本地部署过AI的童鞋可以查看我之前发布的教程,在自…

在线聊天项目

人事管理项目-在线聊天 后端接口实现前端实现 在线聊天是一个为了方便HR进行快速沟通提高工作效率而开发的功能,考虑到一个公司中的HR并不多,并发量不大,因此这里直接使用最基本的WebSocket来完成该功能。 后端接口实现 要使用WebSocket&…

【NLP】有限自动机的KMP算法

目录 一、说明 二、无策略直接匹配法 2.1 简单粗暴的无脑匹配: 2.2 跳过外循环的思路 2.3 跳过内循环的思路 2.4 KMP算法时间分析 三、KMP有限状态机 四、结论 一、说明 KMP算法问题:给定一个(短)模式和一个(长&#xff…

PCB材料选择与性能比较

PCB板被广泛应用于电子行业,作为电子设备的重要组成部分之一,负责连接各种电子元件。PCB板的性能直接影响着电子设备的质量和稳定性。而PCB板的材料选择则是影响PCB板性能的关键因素之一。本文将对常见PCB材料进行比较分析,以便于选择适合的材…

西电网课UMOOCs《英美概况》1-15单元课后答案

声明:本文CSDN作者原创投稿文章,未经许可禁止任何形式的转载,原文链接 如果图片挂了,可以移步至我的博客西电网课UMOOCs《英美概况》1-15单元课后答案 - 小木槌 文章目录 Quiz for Unit 1Quiz for Unit 2Quiz for Unit 3Quiz for…

C/C++基础补充

1. NULL和nullptr 有如下代码&#xff1a; void func(int a) {cout << "func(int)" << endl; }void func(int* p) {cout << "func(int*)" << endl; }void test() {func(0); // func(int);func(NULL); // func(int);fun…

带你探索400G光模块测试

随着移动互联网、云计算、大数据等技术快速发展&#xff0c;数据中心及云计算资源需求的爆发式地增长&#xff0c;核心网传输带宽需求大幅度的提升&#xff0c;同时也带动了超大规模云数据中心的发展&#xff0c;对数据中心内部和之间的互联的光模块带宽需求呈快速增长&#xf…

ChatGPT 使用 拓展资料:吴恩达大咖 Building Systems with the ChatGPT API 思维链

ChatGPT 使用 拓展资料:吴恩达大咖 Building Systems with the ChatGPT API 思维链 在本节中,我们将重点讨论要处理输出的任务,这些任务通常通过一系列步骤来获取输入并生成有用的输出。有时,在回答特定问题之前,模型详细推理问题是很重要的。如果你参加了我们之前为开发人…