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入门使用、踩坑记录
转载: mybatis-plus入门使用、踩坑记录 - 灰信网(软件开发博客聚合) 首先引入MYBATIS-PLUS依赖: SPRING BOOT项目: <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus…...
C# 静态类和sealed类(密封类)的区别
网上看到很多文章写静态类,和密封类,但是鲜有它们的对比总结,在此简单总结一下: 静态类(Static Class): 静态类不能被实例化,其成员都是静态的,可以通过类名直接访问。静…...
el-table如何实现自动缩放,提示隐藏内容
前提问题:大屏展示中某一个区域是表格内容,当放大或缩小网页大小时,表格宽度随之缩放,但表格内容未进行缩放,需要表格内容与网页大小同时进行缩放,且表头和表格内容宽度不够未显示全时,需要进行…...
CRM客户管理软件对出海企业的帮助与好处
2023我们走出了疫情的阴霾,经济下行压力大,面对内需的不足,国内企业纷纷选择出海,拓展海外业务增加企业营收。企业出海不是一件易事,有了CRM系统可以让公司事半功倍,下面就来说一说CRM客户管理软件能为出海…...
【QT--使用百度地图API显示地图并绘制路线】
QT--使用百度地图API显示地图并绘制路线 前言准备工作申请百度地图密钥(AK)安装开发环境 开发过程新建项目ui界面GPSManager类主窗口Map 效果展示 前言 先吐槽一下下,本身qt学的就不咋滴,谁想到第一件事就是让写一个上位机工具,根据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)套装上下册》
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...
(1)数据库 MSQ 数据库 安装 使用 以及增删改查
下载官网:MySQL :: Download MySQL Shell 常见的数据库分为: 关系型数据库, Oracle、MySQL、SQLServer、Access非关系型数据库, MongoDB、Redis、Solr、ElasticSearch、Hive、HBase 安装过程 使用过程...
什么测试自动化测试?
什么测试自动化测试? 做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多。一直想动笔写一篇文章分享自动化测试实践中的一些经验。终于决定花点时间来做这件事儿。 首先理清自动化测试的概念,广义上来讲&a…...
【踩坑篇】代码中使用 Long 作为 Map的Key存在的问题
本周的工作结束,详述一些在项目代码中实际遇到的一些坑。 代码中遇到这样一个场景: 有个业务接口,接口返回的值是一个JSON格式的字符串,通过JSON解析的方式,解析为格式为: Map<Long, Map<String, O…...
微服务保护-授权规则/规则持久化
授权规则 基本规则 授权规则可以对调用方的来源做控制,有白名单和黑名单两种方式。 白名单:来源(origin)在白名单内的调用者允许访问 黑名单:来源(origin)在黑名单内的调用者不允许访问 点…...
练习敲代码速度
2023年9月18日,周一晚上 今晚不想学习,但又不想玩游戏,于是找了一些练习敲代码的网站来玩玩,顺便练习一下敲代码的速度 目录 参考资料个人推荐第一个 第二个第三个 参考资料 电脑打字慢,有哪些比较好的练打字软件&a…...
uni-app:实现条件判断展示图片(函数判定+三目运算)
一、多条件判断(通过函数进行图片展示) 效果 代码 在data中定义图片信息和要传递的数据信息,在src中写入函数并携带要传递的数据,通过传递的数据在函数中进行判断,并返回对应的图片信息 <template><view&…...
http概念
概念:HTTP,hyper text transfer protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。 特点: 1.基于TCP协议:面向连接,安全。 2.基于请求-响应模型的:一次请求对应一…...
Postman应用——Variable变量使用(Global、Environment和Collection)
文章目录 变量的使用同名变量优先级Postman内置变量 Global、Environment和Collection变量设置,点击查看。 变量的使用 语法: {{变量名}}使用{{}}包裹变量名,引用设置好的变量。 注意:Environment变量引用前需要先选择已有的环…...
php高级 TP+Redis实现发布订阅和消息推送案例实战
Redis 的发布-订阅模型是一种消息通信模式,它允许客户端之间通过特定的频道进行通信。在这种模型中,有些客户端负责发布消息(发布者),而其他客户端则订阅它们感兴趣的频道并接收这些消息(订阅者)…...
从sipML5到现代框架:FreeSWITCH WebRTC客户端升级指南与选型建议
从sipML5到现代框架:FreeSWITCH WebRTC客户端升级指南与选型建议 如果你正在维护一个基于sipML5的FreeSWITCH WebRTC前端项目,可能已经感受到了技术债的压力——浏览器兼容性问题频发、功能扩展困难、社区支持几乎为零。这不是你的错,sipML5作…...
每日一题 力扣 3548. 等和矩阵分割 II 前缀和 哈希表 C++ 题解
文章目录题目描述思路简述代码实现复杂度分析踩坑记录题目描述 力扣 3548. 等和矩阵分割 II 示例 1: 输入: grid [[1,4],[2,3]] 输出: true 解释: 在第 0 行和第 1 行之间进行水平分割,结果两部分的元素和为 1 4 5…...
Vue项目中el-tabs标签栏的5个高级用法与避坑指南
Vue项目中el-tabs标签栏的5个高级用法与避坑指南 在Vue生态中,Element UI的el-tabs组件是构建标签式界面的首选方案。但很多开发者仅停留在基础使用层面,未能充分发挥其潜力。本文将揭示五个高阶技巧,助你打造更灵活、高效的标签系统。 1. 标…...
静态图训练卡顿、NCCL超时、Graph Break频发?PyTorch 3.0分布式训练高频故障诊断与热修复清单,含12个可复用调试脚本
第一章:PyTorch 3.0静态图分布式训练故障全景认知PyTorch 3.0 引入的静态图编译(TorchDynamo Inductor 后端)与原生分布式训练(如 FSDP、DDP)深度耦合后,故障表现呈现多维交织特征:编译期图构建…...
海外项目实战:用uniapp+Google OAuth 2.0搞定H5/App的免后端登录(附完整源码)
海外项目实战:Uniapp与Google OAuth 2.0的无后端登录方案 在面向海外市场的移动应用开发中,用户登录体验直接影响产品的转化率和留存率。Google账号作为欧美地区最普及的数字身份凭证,其登录集成已成为出海应用的标配功能。本文将深入探讨如何…...
在单细胞测序数据分析中,barcodes、features和matrix是三个最核心的基础文件,它们共同构成了所有分析的基石。
在GEO(Gene Expression Omnibus)数据库中下载单细胞数据时,最常见的数据存储和提供形式主要有以下四种类型:10x Genomics 标准格式(最主流)在GEO的数据集中,我们通常会找到一个包含以下三个核心…...
对抗攻击新思路:为什么Diffusion模型比GAN更适合生成隐蔽攻击样本?
扩散模型在对抗攻击领域的突破性优势:从理论到实践 当我们在讨论机器学习安全时,对抗攻击一直是个令人着迷又充满挑战的话题。想象一下,只需对输入图像做几乎不可察觉的微小改动,就能让最先进的分类模型完全"失明"——这…...
用ChatTTS打造你的专属AI语音助手:从音色定制到批量合成音频的完整工作流
用ChatTTS打造你的专属AI语音助手:从音色定制到批量合成音频的完整工作流 在内容创作领域,音频正成为越来越重要的媒介形式。无论是知识付费课程的讲解、播客节目的制作,还是智能设备的语音交互,一个稳定、个性化的语音合成系统都…...
ChatTTS 安装与部署实战:从零搭建到性能调优
最近在做一个语音合成的项目,选型时看中了 ChatTTS,它开源的特性、不错的音质和可控性很吸引人。但在实际动手安装和部署时,发现从个人电脑跑起来到服务器上稳定服务,中间有不少坑。今天就把我这一路从零搭建到性能调优的实战经验…...
macOS Sequoia 15.7.5 (24G624) 正式版 ISO、IPSW、PKG 下载
macOS Sequoia 15.7.5 (24G624) 正式版 ISO、IPSW、PKG 下载 iPhone 镜像、Safari 浏览器重大更新和 Apple Intelligence 等众多全新功能令 Mac 使用体验再升级 请访问原文链接:https://sysin.org/blog/macOS-Sequoia/ 查看最新版。原创作品,转载请保留…...
