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 的发布-订阅模型是一种消息通信模式,它允许客户端之间通过特定的频道进行通信。在这种模型中,有些客户端负责发布消息(发布者),而其他客户端则订阅它们感兴趣的频道并接收这些消息(订阅者)…...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...
《Offer来了:Java面试核心知识点精讲》大纲
文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...
算法刷题-回溯
今天给大家分享的还是一道关于dfs回溯的问题,对于这类问题大家还是要多刷和总结,总体难度还是偏大。 对于回溯问题有几个关键点: 1.首先对于这类回溯可以节点可以随机选择的问题,要做mian函数中循环调用dfs(i&#x…...
CppCon 2015 学习:Simple, Extensible Pattern Matching in C++14
什么是 Pattern Matching(模式匹配) ❝ 模式匹配就是一种“描述式”的写法,不需要你手动判断、提取数据,而是直接描述你希望的数据结构是什么样子,系统自动判断并提取。❞ 你给的定义拆解: ✴ Instead of …...