ARM相关概念

ARM课程大纲

ARM相关的基本概念

机器码

计算机能够识别由1和0组成的编码格式
汇编:将汇编文件转换为二进制文件(.bin/.elf)

汇编指令

是一条具备特殊功能的指令
编译:生成汇编文件
int a = 10;      ------>    mov r0 #10    编译 

汇编指令集

由多条不同功能的汇编指令组成的集和

架构

由不同的汇编指令集设计出来的架构x86汇编指令集设计出x86-64架构
arm汇编指令集设计出arm架构arm v1-v6架构     目前已经淘汰
arm v7架构:只支持32位ARM指令集的架构   ----> stm32mp157a
arm v8架构:支持64位ARM指令集的架构,并且向下兼容arm v7架构
arm v9架构:最新的架构,未来十年的发展趋势四大主流芯片架构:x86架构、       ARM架构、       RISC-V架构、       Mips架构inter         苹果、华为       nivida、三星       龙芯中科(龙架构)不开源           不开源           开源          、主流的芯片厂商:ST、NXP、海思(麒麟)、高通、MTK(联发科)、TI(德州仪器)、SAMSUNG(Exynos猎户座)新唐科技、展瑞、瑞芯微、中芯国际、阿里(平头哥)、小米(澎湃)、全志兆易创新(GD32)、龙芯中科(电脑cpu)

内核

基于不同的架构设计出来不同的内核ARM架构 ---> Cortex-A核     Cortex-M核CPU:中央处理器,可以叫MPU MCU SOC
MCU:微控制器,一般指的是裸机,无法运行像Linux这种大型的操作系统的,但是它可以运行os实时操作系统(FreeRTOS、lite-os、RT Thread)
MPU:微处理器,一战指的是可以跑大型的操作系统的处理器
SOC:片上系统ARM公司基于ARM指令集设计出ARM架构,ARM公司再基于ARM架构设计出了Cortex-A7内核
ARM将Cortex-A7内核授权给了ST(意法半导体)公司,ST公司基于Cortex-A7内核研发出了STM32MP157AAA芯片
ST公司将这个芯片卖给了华清远见,华清远见研发部基于STM32MP157A芯片添加很多的外设
最后构成了开发板

精简指令集和复杂指令集的区别

精简指令集 - RISC

汇编指令集相对于来说比较简单,易阅读
特点:指令的宽度和指令的周期固定
指令宽度:一条指令所占的空间,arm-v7架构的指令占32位(4个字节)的空间
指令周期:一条指令执行需要的时间精简指令集:ARM架构、RISC-V、Mips架构、PowerPC架构

复杂指令集

特点:指令的周期和指令的宽度不固定复杂指令集:x86架构

验证

复杂指令集

精简指令集

ARM处理器具备默认的汇编指令集 -> Thumb指令
Thumb指令集是ARM指令集的子集(儿子)
Thumb指令集每条指令占16位,及2字节的空间
ARM指令集每条指令占32位,及4字节的空间

ARM处理器的工作模式

Cortex-M核的工作模式

两种模式:线程模式、异常模式

Cortex-A核的工作模式

ARM v7架构的寄存器组织

存储类型

在c语言中我们学习过的6种存储类型?auto static const extern volatile register
register:访问速度快,不允许取地址
volatile:防止编译器对代码进行优化,直接从内存中取最新的值核内寄存器:不存在地址,只允许用编号访问,R0-R15 CPSR SPSR
定义变量的过程:存储类型+数据类型+变量名

寄存器位置

寄存器是一块具备特殊功能的存储空间

arm v7架构的寄存器组织

1、每个小方格都是一个寄存器,对于ARM V7架构而言,每个寄存器的大小是32位,4个字节
2、在user、sys模式下存在17个可控制的寄存器
3、在fiq、irq、abt、udf、svc、mon模式下存在18个可控制的寄存器
4、在hyp模式下存在19个可控制的寄存器
5、核内寄存器不存在地址,只能通过编号进行访问,编号由R0-R15, CPSR, SPSR白色底的寄存器代表的是共有的寄存器,蓝色底的寄存器代表的是私有的寄存器
在异常模式下,如果存在私有的寄存器,只能访问私有的寄存器,不允许访问共有的寄存器
如果在工作模式下,没有私有的寄存器,就访问共有的寄存器

一共有43个可控制的寄存器

特殊功能寄存器(重点

R13寄存器

R13寄存器   ----> sp寄存器 ---->  the stack pointer  ---->  栈指针寄存器
栈指针寄存器的作用:这个寄存器中存放的是栈空间的一块地址,用于压栈保存现场和出栈恢复现场

不同场景下栈的作用
内存划分中的栈:用于存储数据,存放的是局部变量、函数参数.....
数据结构中的栈:用于存储数据,一种特殊的数据结构
arm裸机开发中的栈:用于存储数据,压栈保存现场、出栈恢复现场栈的特点:在不同的场景下,栈都用于存储数据,并且遵循FILO(先入后出)的特性

R14寄存器

R14寄存器  ---> lr寄存器    ---->   the linking register   ---->  链接寄存器
作用:用于保存函数的返回地址

R15寄存器

R15寄存器 ---->  pc寄存器  ------->  the program counter ------->  程序计数寄存器
作用:用于保存下一条取值指令的地址

CPSR寄存器

CPSR寄存器   ---->  the currented program statue register -----> 当前程序状态寄存器
作用:用于保存当前程序状态的寄存器

SPSR寄存器

SPSR寄存器   ---->  the saved program statue register   -----> 备份程序状态寄存器
作用:用于备份当前的程序状态的寄存器

CPSR寄存器中位的作用

N[31]:负数标志位当指令执行结果为负数时,N位置1,否则清0(可以用于比较大小)
Z[30]:零标志位当指令执行结果为0时,Z位置1,否则清0(用于判断是否相等)
C[29]:进位/借位标志位加法:低32位向高32位进位时,C位置1,否则清0减法:高32位向低32位借位时,C位清0,否则置1
V[28]:符号标志位当符号位发生变化时,V位置1,否则清0I[7]:IRQ屏蔽位i = 1时,屏蔽IRQ(普通中断)i = 0时,不屏蔽IRQ
F[6]:FIQ屏蔽位f = 1时,屏蔽FIQ(快速中断)f = 0时,不屏蔽FIQ
T[5]:状态位t = 0时,arm状态,执行ARM指令集(32位)t = 1时,thumb状态,执行thumb指令(16位)Cortex-A核一般使用的是ARM指令集,Cortex-M核一般使用的是Thumb指令集
M[4:0]:模式位10000 User mode;    10001 FIQ mode;         10011 SVC mode;10111 Abort mode;  11011 Undef mode;  11111 System mode;     10110 Monitor mode;   10010 IRQ mode; 

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

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

相关文章

Qt/C++ 了解NTFS文件系统,解析0x80 $Data属性,获取Run Lists数据列表

系列文章目录 整个专栏系列是根据GitHub开源项目NTFS-File-Search获取分区所有文件/目录列表的思路。 具体的如下: Qt/C 了解NTFS文件系统,了解MFT(Master File Table)主文件表(一) 介绍NTFS文件系统,对比通过MFT(Master File Tab…

springboot中小学数字化教学资源管理平台

基于springbootvue实现的中小学数字化教学资源管理平台 (源码L文ppt)4-078 第4章 系统设计 4.1 功能模块设计 系统整体模块分为管理员、教师和学生三大用户角色,整体功能设计图如下所示: 图4-1 系统整体功能图 4.2 数据库设计 4.2.1 E-R模…

工业交换机故障快速排查的方法有哪些

在现代工业自动化的环境中,工业交换机作为网络连接的重要设备,其稳定性和可靠性至关重要。然而,实际使用过程中难免会遇到各种故障,这对生产线和系统的正常运作造成了影响。为了有效应对这些问题,下面将介绍一些工业交…

CSRF高级防御绕过

1)回顾low级别做过csrf页面的密码重置,重复之前的操作,我们发现级别调整中级之后,报错如下 2)检查源码 进入dvwa源码,查找到checktoken: 3)在dvwa-csrf页面上,抓包 http…

前端开发者有福啦,循序渐进Vue.js 3.x前端开发实践已上线

目录 写在前面 推荐图书 推荐理由 写在最后 写在前面 好书推荐!前端开发者的福利来喽,《循序渐进Vue.js 3.x前端开发实践》,你值得拥有。 推荐图书 《循序渐进Vue.js 3.x前端开发实践》 推荐理由 《循序渐进Vue.js 3.x前端开发实践》…

介绍GPT-o1:一系列解决困难问题( science, coding, and math )的推理模型

openai o1介绍 一、官方技术报告要点剖析实验1 benchmark分析实验2:和phd比赛技术细节:Chain of Thought的使用人类偏好评估Human preference evaluationsatety技术细节:隐藏思维链为监控模型提供了机会:)openai的几点conclusion 二、官方介绍剖析 Intro…

【C语言进阶】第四节:自定义类型详解

1、结构体 1.1 结构体变量的定义和初始化 struct Point//类型声明 {int x;int y; }p1;//声明类型的同时定义变量p1struct Point p2;//定义结构体变量p2//初始化:定义变量的同时赋初值。 struct Point p3 { x, y };struct Node {int data;struct Point p;struct N…

端侧 AI 的新突破:面壁智能 MiniCPM 3.0

在人工智能领域,每一次技术的革新都可能引发一场小小的革命。 ChatGPT-3.5 曾经凭借其惊人的表现赢得了大众的关注,但如今,随着国内AI公司面壁智能推出的新端侧基座模型,人们开始重新审视端侧AI的潜力和未来。 这款名为MiniCPM …

Dockerfile全面指南:从基础到进阶,掌握容器化构建的核心工具

目录 Dockerfile全面指南:从基础到进阶,掌握容器化构建的核心工具 引言 一、什么是 Dockerfile 二、Dockerfile 的基本结构 三、Dockerfile 的常见配置项 1、多阶段构建 (Multi-stage Builds) 2、缓存优化 3、合并 RUN 命令 四、Dockerfile 使用…

C盘太臃肿了用这招一键给C盘瘦身 快速释放C盘空间

C盘太臃肿了用这招一键给C盘瘦身 快速释放C盘空间。我们的电脑不知不觉的就爆满了,这个主要的原因就是各种垃圾文件堆积,时间用得越久,垃圾堆积得越多,这样我们的C盘空间就被蚕食了,空间越来越小,变得越来越…

干货分享:为什么stable diffusion训练用ddpm, 采样用ddim呢?

前言 回忆一下DDPM,实质上它的推导过程应是如下的: 其中, 是单纯的高斯分布的推导,相当于一个序列过程的归纳法推导。 在DDPM中采用的是[贝叶斯公式]。 而过程则是用对进行一个估测,也就是用前向过程反过来对进行一个…

sql语法学习:关键点和详细解释

学习SQL语法是掌握数据库操作的基础。以下是SQL语法的一些关键点和详细解释: 1. SQL基础 SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准语言。它主要包括以下几个部分: 数据定义语言(DDL&…

探索Mem0:AI的智能记忆层

文章目录 探索Mem0:AI的智能记忆层背景介绍Mem0是什么?如何安装Mem0?简单使用方法应用场景常见问题及解决方案总结 ![ 探索Mem0:AI的智能记忆层 背景介绍 在人工智能的世界里,记忆是个性化体验的关键。想象一下&…

结构设计模式 -装饰器设计模式 - JAVA

装饰器设计模式 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 一. 介绍 百度百科:装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对…

只需5分钟!掌握学术写作的核心逻辑!

人工智能的广泛应用中,ChatGPT 已被证明是一种极具潜力的语言模型,其功能涵盖多个领域,显示出强大的适应性。在 GPT-4 架构的推动下,ChatGPT 正在彻底改变我们与文本驱动的人工智能的交互模式。 在学术界,学术写作至关…

【测试】——Selenium API (万字详解)

📖 前言:本文详细介绍了如何利用Selenium进行Web自动化测试,包括定位元素(如cssSelector和xpath)、常用操作函数(如点击、输入等)、窗口管理、键盘鼠标事件和浏览器导航,以及处理弹窗…

实用小工具——多标签页插件Office Tab介绍

Office Tab引入选项卡式用户界面,增强了Microsoft Office使用体验。软件界面,可以设置你喜欢的标签类型。 安装后office界面会新增一个办公标签栏,立面有各功能说明。 最常用的是这个标签切换功能。 安装也很简单,选择对应位数安装…

知识产权实缴出资是否合法

知识产权实缴出资是否合法 近年来,随着知识产权在企业价值中的重要性日益凸显,知识产权实缴出资作为一种新兴的出资方式,逐渐受到社会各界的关注。然而,关于知识产权实缴出资是否合法的问题,一直是企业和投资者关注的焦…

vulnhub(13):LordOfTheRoot(sql时间盲注、mysql udf提权)

端口 nmap主机发现 nmap -sn 192.168.72.0/24 ​ Nmap scan report for 192.168.72.170 Host is up (0.00020s latency). ​ 170是新出现的机器,他就是靶机 nmap端口扫描 nmap -Pn 192.168.72.170 -p- --min-rate 10000 -oA nmap/scan 扫描开放端口保存到 nmap/sca…

Sony IMX334LQR-C 1/1.8寸 8.42 M像素

索尼IMX334LQR宽动态超星光级交通监测CMOS 封装:LGA 对⾓线:8.86 mm(类型1/1.8) 索尼IMX334LQR宽动态超星光级交通监测CMOS的参数及规格书资料: IMX334LQR-C是⼀个对⾓线8.86 mm(类型1/1.8)的…