单片机ARM体系架构知识你知道多少?

单片机ARM体系架构知识你知道多少?想学习单片机的同学可以关注 私信我或者在评论区回复我要入门 在嵌入式领域中 ARM 可谓一家独大 所以我们要学习嵌入式开发 一定要了解 ARM 体系 只有在了解 ARM 体系的基础上才能理解 ARM 汇编 GNU 汇编 很多同学对于 ARM 的了解还是一知半解

大家好,欢迎来到IT知识分享网。

想学习单片机的同学可以关注、私信我或者在评论区回复我要入门。在嵌入式领域ARM可谓一家独大,所以我们要学习嵌入式开发,一定要了解ARM体系,只有在了ARM体系的基础上才能理ARM(GNU)很多同学ARM的了解还是一知半解,那今天我们就对它进行一探究竟。

单片机ARM体系架构知识你知道多少?

首先梳理一下ARM处理器相关名词

流水线:

底层架构设计的术语 CPUfetch(取指),然decode(),然excute(),称为基F D E的三步操作CPU才能完成运算,这种三步完成的我们称为三级流水。

DSP:

数字信号处理,可以理解为一个单独的芯片或者协处理器来处理数字信号,比如说多媒体信(因为对任务的独占性要求高,使用CPU去处理的话,别的任务可能兼顾不过)

Jazelle

arm中针Java的编程模型,基本不会用到

半字默认情况int占四个字节,单个字节存储容易将一个数据破坏,所以有时候将四个字节一起存储,称为一个字,半字就代表两个字节一起操作

Thumb

Thumb指令,辅arm处理的指令,因32位的机器arm指令32位即四个字节,但有时候为了减少指令所占用的空间,就引入thumb(小拇)指令,是一16位的精简指令,再后来推出Thumb21632位混合的指令。

VFP:

Vector Floating-Point矢量浮点运算机制

QEMU:

实际上是一个软件模拟器,模拟不同的架构体(x86 arm),调bootloader或者裸机程序的时候可以使用

GNU工具链:

既可以开发内核也可以用来开发应用程包含如下组件:

GNU make

GNU Compiler Collection (GCC)

GNU binutils linker, assembler and other object/library manipulation tools

GNU Debugger (GDB)

GNU build system (autotools)

GNU C Library (glibc or eglibc)

gnueabi的含义:

e embedded嵌入 a application应用程 b binary二进 i interface全称嵌入式应用程序二进制接口,所以它的作用就是编译生成嵌入式的二进制程序

UEFI:

Unified Extensible Firmware Interface统一可扩展的部件接相当于硬件与操作系统适配的标准,制定了操作系统可以扩展哪些硬件接口,但我们在arm开发的时候可能硬件不是非常的规范,那么就可以使用这个标准模拟出符合标准的硬件,绕过它。

TrustZone

安全架构

LPAE

Large Physical Address Extension(大物理地址扩)类似于虚拟化的技 32位按理说最多只能寻4G但使用之后,内存可以虚拟为特别,T也没有关(硬件层)

big LITTLE:

大小处理器可能需要一个主处理器与协处理例如主处理A15和协处理A8当任务量要求不大的时候,切换到协处理器,会降低功主要是针对手持设备,解决费电的问官方宣称使用这种方式比完全使用主处理器可以节约用电70%

CPU组成:

ALU(逻辑运算单)

控制器,可以用来切CPU状态

寄存(小型的存储)

CPU内部总线最最主要的是前三但是与我们写程序最最关心的就CPU状态切换与寄存器

arm处理器模式

不同系列的处理器,处理器模式可能不一arm7arm97种处理器模A系列的9种处理器模式

处理器模式是指系统运行的时候如果出现崩溃的时候,切CPU模式,来完成安全,效率,节能控制。因为系统崩溃的时cpu的工作是没有意义的,所以这时候为了节能等其他方面的考虑,必须切换处理器模式。

下面cotex A系列的九种处理器模式进行介,

一种非特权模式8种特权模式

模式编码也会存放在指(也就32位中占5)的某个区域

USR用户模式,大部分程序运行所处的模式,普通模式

FIQfast interrupt,快速中断模式,

SVC为超级管理员模式,当开机的时cpu权限最高,按reset键的时候,系统就会所有工作,执reset,权限非常大,一般不随便使用

MONcotex A系列增加的,称为监视模式,相当于一个后台的服务ABT退出模式,通常用户程序发生异常的时候cpu停止代码运行,然后退出

HYP是超级的监视者,比超级管理员低一点,一般也不常用

SYS当系统自身异常的时候,有一个特点就是与用户模式寄存器共模式基本都用大写的简写来表示

USR FIQ IRQ SVC MON ABT HYP UND SYS

因为内存不稳定以及访问速度慢等原因,所以cpu中需要寄存器。

USR模式下寄存器

r1r12都是通用寄存器

r13sp,即stack pointer栈指针。存储栈地址,程序跳转的时候,保存程序跳转的目标地址标识

r14lr,即link register链接寄存器。存储子程序的返回地址。

r15pc,即program count程序计数器。

APSR/CPSR, PSRprogram status register程序状态寄存器Aapilication应用Ccurrent当前,所以全称为/当前程序状态寄存器

SPSR Ssaved已保存的,所以全称已保存的程序状态寄存器,更好听一点称为存储程序状态寄存器或者备份状态寄存器

举例说明CPSR/APSRSPSR寄存器当前程序状态假设normal状态那么这个状态先保存到CPSR,但之后突然发生异(exception),这时exception会存到CPSR寄存器,但处理完异常以后想要返normal状态,这时候原来normal状态已经被冲掉了,所以就需要SPSR寄存器对原来状态进行保存,保证可以还原到原来状态正是因为我们的这种需求,所以处理器 USR模式下没SPSR USR模式是正常的模式,所以不需要记录异常模式,或者其他状态模式,这样知识就联系起来了,理解起来也就更容易了。

本期先分享到这里,想要进群学习单片机编程的同学可以私信我,回我要入,与我们一起成长,喜欢的可以点个赞关注我们!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/160304.html

(0)
上一篇 2024-12-03 13:15
下一篇 2024-12-03 13:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信