当前位置: 首页 > news >正文

2、ARM处理器概论

一、ARM处理器概述

1、ARM的含义

ARM(Advanced RISC Machines)有三种含义,一个公司的名称、一类处理器的通称、一种技术

ARM公司:

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

2、ARM产品系列

在这里插入图片描述

早先经典处理器:

  • 包括ARM7、ARM9、ARM11家族

Cortex-A系列:

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

Cortex-R系列:

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

Cortex-M系列:

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

3、RISC处理器

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

4、CISC处理器

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

5、SOC(System on Chip)

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

二、ARM指令集概述

1、指令集

  • 指令:
    • 能够指示处理器执行某种运算的命令称为指令(加、减、乘…)
    • 指令在内存中以机器码(二进制)的方式存在
    • 每一条指令都对应一条汇编
    • 程序是指令的有序集合
  • 指令集:
    • 处理器能够识别的指令的集合称为指令集
    • 不同架构的处理器的指令集不同
    • 指令集是处理器对开发者提供的接口
      在这里插入图片描述

2、ARM指令集

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

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

Thumb指令集:

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

在这里插入图片描述

3、编译原理

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

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

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

三、ARM存储类型

1、ARM数据类型

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

  • Byte:8bit
  • HalfWord:16bit
  • Word:32bit

数据存储:

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

注:即数据本身是多少位在内存存储时就应该多少位对齐
在这里插入图片描述

2、字节序

大端对齐

  • 低地址存放高位,高地址存放低位
  • 如:a = 0x12345678
    在这里插入图片描述
    小端对齐
  • 低地址存放低位,高地址存放高位
  • 如:a = 0x12345678
    在这里插入图片描述
    注:ARM一般使用小端对齐

3、ARM指令存储

处理器处于ARM状态时

  • 所有的指令在内存的起始地址必须是4的整数倍
  • PC值由其[31:2]决定,[1:0]位未定义

处理器处于Thumb状态时

  • 所有指令在内存的起始地址必须是2的整数倍
  • PC值由其[31:1]决定,[0]位未定义

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

四、ARM工作模式

1、ARM有八个基本的工作方式模式

  • User:非特权模式,一般在执行上层的应用程序时ARM处于该模式
  • FIQ: 当一个高优先级中断产生后ARM将进入这种模式
  • IRQ:当一个低优先级中断产生后ARM将进入这种模式
  • SVC:当复位或执行软中断指令后ARM将进入这种模式
  • Abort:当产生存取异常时ARM将进入这种模式
  • Undef:当执行未定义的指令时ARM将进去这种模式
  • System:使用和User模式相同的寄存器集的特权模式
  • Moniter:为了安全而扩展出的用于执行安全监控代码的模式

2、不同模式的理解

  • 不同的模式拥有不同的权限
  • 不同模式执行不同代码
  • 不同模式完成不同功能

3、模式的分类

按照权限分:

  • User为非特权模式(权限较低),其余模式均为特权模式(权限较高)

按照状态分:

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

相关文章:

2、ARM处理器概论

一、ARM处理器概述 1、ARM的含义 ARM(Advanced RISC Machines)有三种含义,一个公司的名称、一类处理器的通称、一种技术 ARM公司: 成立于1990年11月,前身为Acorn计算机公司主要设计ARM系列RISC处理器内核授权ARM内…...

【Python】福利彩票复式模拟选号程序

【效果】 【注意】 逻辑是用Random模拟10000次复试彩票选号,然后给出最大可能性一组。但是模拟终究是模拟,和现实彩票结果没有任何联系,下载下来玩就是了,没人能保证模拟出中奖号码,不要投机,不要投机! 【修改】 代码很简单,如果想改成不是复式的,自行修改即可。 如…...

Pytorch 机器学习专业基础知识+神经网络搭建相关知识

文章目录 一、三种学习方式二、机器学习的一些专业术语三、模型相关知识四、常用的保留策略五、数据处理六、解决过拟合与欠拟合七、成功的衡量标准 一、三种学习方式 有监督学习: 1、分类问题 2、回归问题 3、图像分割 4、语音识别 5、语言翻译 无监督学习 1、聚类…...

torch 和paddle 的GPU版本可以放在同一个conda环境下吗

新建conda 虚拟环境,python 版本3.8.17 虚拟机,系统centos 7,内核版本Linux fastknow 3.10.0-1160.92.1.el7.x86_64 ,显卡T4,nvidia-smi ,460.32.03,对应cuda 11.2,安装cuda 11.2和cudnn,conda…...

MYBATIS-PLUS入门使用、踩坑记录

转载&#xff1a; mybatis-plus入门使用、踩坑记录 - 灰信网&#xff08;软件开发博客聚合&#xff09; 首先引入MYBATIS-PLUS依赖&#xff1a; SPRING BOOT项目&#xff1a; <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus…...

C# 静态类和sealed类(密封类)的区别

网上看到很多文章写静态类&#xff0c;和密封类&#xff0c;但是鲜有它们的对比总结&#xff0c;在此简单总结一下&#xff1a; 静态类&#xff08;Static Class&#xff09;&#xff1a; 静态类不能被实例化&#xff0c;其成员都是静态的&#xff0c;可以通过类名直接访问。静…...

el-table如何实现自动缩放,提示隐藏内容

前提问题&#xff1a;大屏展示中某一个区域是表格内容&#xff0c;当放大或缩小网页大小时&#xff0c;表格宽度随之缩放&#xff0c;但表格内容未进行缩放&#xff0c;需要表格内容与网页大小同时进行缩放&#xff0c;且表头和表格内容宽度不够未显示全时&#xff0c;需要进行…...

CRM客户管理软件对出海企业的帮助与好处

2023我们走出了疫情的阴霾&#xff0c;经济下行压力大&#xff0c;面对内需的不足&#xff0c;国内企业纷纷选择出海&#xff0c;拓展海外业务增加企业营收。企业出海不是一件易事&#xff0c;有了CRM系统可以让公司事半功倍&#xff0c;下面就来说一说CRM客户管理软件能为出海…...

【QT--使用百度地图API显示地图并绘制路线】

QT--使用百度地图API显示地图并绘制路线 前言准备工作申请百度地图密钥(AK)安装开发环境 开发过程新建项目ui界面GPSManager类主窗口Map 效果展示 前言 先吐槽一下下&#xff0c;本身qt学的就不咋滴&#xff0c;谁想到第一件事就是让写一个上位机工具&#xff0c;根据CAN总线传…...

C数据结构二.练习题

一.求级数和 2.求最大子序列问题:设给定一个整数序列 ai.az..,a,(可能有负数).设计一个穷举算法,求a 的最大值。例如,对于序列 A {1,-1,1,-1,-1,1,1,1,1.1,-1,-1.1,-1,1,-1},子序列 A[5..9](1,1,1,1,1)具有最大值5 3.设有两个正整数 m 和n,编写一个算法 gcd(m,n),求它们的最大公…...

猫头虎博主第5️⃣期赠书活动:《Java官方编程手册(第12版·Java 17)套装上下册》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…...

(1)数据库 MSQ 数据库 安装 使用 以及增删改查

下载官网&#xff1a;MySQL :: Download MySQL Shell 常见的数据库分为&#xff1a; 关系型数据库&#xff0c; Oracle、MySQL、SQLServer、Access非关系型数据库&#xff0c; MongoDB、Redis、Solr、ElasticSearch、Hive、HBase 安装过程 使用过程...

什么测试自动化测试?

什么测试自动化测试&#xff1f; 做测试好几年了&#xff0c;真正学习和实践自动化测试一年&#xff0c;自我感觉这一个年中收获许多。一直想动笔写一篇文章分享自动化测试实践中的一些经验。终于决定花点时间来做这件事儿。 首先理清自动化测试的概念&#xff0c;广义上来讲&a…...

【踩坑篇】代码中使用 Long 作为 Map的Key存在的问题

本周的工作结束&#xff0c;详述一些在项目代码中实际遇到的一些坑。 代码中遇到这样一个场景&#xff1a; 有个业务接口&#xff0c;接口返回的值是一个JSON格式的字符串&#xff0c;通过JSON解析的方式&#xff0c;解析为格式为&#xff1a; Map<Long, Map<String, O…...

微服务保护-授权规则/规则持久化

授权规则 基本规则 授权规则可以对调用方的来源做控制&#xff0c;有白名单和黑名单两种方式。 白名单&#xff1a;来源&#xff08;origin&#xff09;在白名单内的调用者允许访问 黑名单&#xff1a;来源&#xff08;origin&#xff09;在黑名单内的调用者不允许访问 点…...

练习敲代码速度

2023年9月18日&#xff0c;周一晚上 今晚不想学习&#xff0c;但又不想玩游戏&#xff0c;于是找了一些练习敲代码的网站来玩玩&#xff0c;顺便练习一下敲代码的速度 目录 参考资料个人推荐第一个 第二个第三个 参考资料 电脑打字慢&#xff0c;有哪些比较好的练打字软件&a…...

uni-app:实现条件判断展示图片(函数判定+三目运算)

一、多条件判断&#xff08;通过函数进行图片展示&#xff09; 效果 代码 在data中定义图片信息和要传递的数据信息&#xff0c;在src中写入函数并携带要传递的数据&#xff0c;通过传递的数据在函数中进行判断&#xff0c;并返回对应的图片信息 <template><view&…...

http概念

概念&#xff1a;HTTP&#xff0c;hyper text transfer protocol&#xff0c;超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则。 特点&#xff1a; 1.基于TCP协议&#xff1a;面向连接&#xff0c;安全。 2.基于请求-响应模型的&#xff1a;一次请求对应一…...

Postman应用——Variable变量使用(Global、Environment和Collection)

文章目录 变量的使用同名变量优先级Postman内置变量 Global、Environment和Collection变量设置&#xff0c;点击查看。 变量的使用 语法&#xff1a; {{变量名}}使用{{}}包裹变量名&#xff0c;引用设置好的变量。 注意&#xff1a;Environment变量引用前需要先选择已有的环…...

php高级 TP+Redis实现发布订阅和消息推送案例实战

Redis 的发布-订阅模型是一种消息通信模式&#xff0c;它允许客户端之间通过特定的频道进行通信。在这种模型中&#xff0c;有些客户端负责发布消息&#xff08;发布者&#xff09;&#xff0c;而其他客户端则订阅它们感兴趣的频道并接收这些消息&#xff08;订阅者&#xff09…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...

SpringAI实战:ChatModel智能对话全解

一、引言&#xff1a;Spring AI 与 Chat Model 的核心价值 &#x1f680; 在 Java 生态中集成大模型能力&#xff0c;Spring AI 提供了高效的解决方案 &#x1f916;。其中 Chat Model 作为核心交互组件&#xff0c;通过标准化接口简化了与大语言模型&#xff08;LLM&#xff0…...