【初识ARM】ARM相关基础概念

文章目录

一、计算机指令集分类

CISC :Complex Instruction Set Computer 复杂指令集(X86)

特点:指令功能多、芯片复杂、成本高、体积大、功耗高

RISC :Reduced Instruction Set Computer 精简指令集

特点:指令功能少、芯片简单、成本低、体积小、功耗低

ARM:设计RISC精简指令集架构CPU(分版本)

授权------>半导体公司

stm32f103:st意法半导体生产 arm公司的CPU

二、ARM内核版本

早期:ARM+数字

ARM7 ARM9 ARM11

按领域加上前缀区分

  1. Cortex-A:Application 应用领域

    • Cortex-A7(IMX6ULL、STM32MP157)
    • Cortex-A5(早期智能机 摩托罗拉)
    • Cortex-A8(Samsung Gaxlay Note)
    • Cortex-A9(Samsung Exnoy 4412)
    • 。。。。。。
    • Cortex-A725(玄戒O1)
  2. Cortex-R:Real-TIme 实时性领域(汽车电子)

  3. Cortex-M:MCU 单片机领域

    • Cortex-M3(stm32f103)
    • Cortex-M4(stm32f407、STM32MP157)

三、ARM体系架构初了解

  1. ALU:算数逻辑单元,完成算数运算

  2. 通用寄存器(内核):存放数据 (没有地址)一共16个(R0-R15)。

  3. PC :programmer counter 程序计数器,指向当前程序正在执行指令的下一条指令。

    三级流水线结构:pc取指令->译码器翻译指令->CPU执行指令(三者并行)

  4. LR:Linked register 链接寄存器 保存函数返回地址

  5. SP:stack pointer 栈指针寄存器,管理栈区空间

  6. CPSR:current programmer status register 当前程序状态寄存器。程序运行到某一步时相关的状态(溢出、借位、进位)(特殊、异常状态)。

  7. SPSR :save programmer status ragister 保存/备份程序状态寄存器

    保存当异常(中断)发生时cpsr寄存器中的值。

  8. MMU :memory management unit 内存管理单元:将程序中的虚拟地址转换为物理地址。

四、存储器架构

存储器是用来存放程序和数据的部件,它是一个记忆装置,也是计算机能够实现"存储程序控制"的基础。

冯诺依曼架构:数据和指令共享一块存储空间;

哈弗架构:数据和指令拥有独立的存储空间.

高速缓冲存储器(Cache) :高速缓存,CPU可以直接访问,用来存放当前正在执行的程序中的活跃部分,以便快速地向CPU提供指令和数据。

五、总线结构

单总线:内核和外设之间通过一组线连接通信;

双总线多总线 ):

速度快的外设------>内核:AHB总线:Advanced High Bus 先进高速总线(USB、网卡、RAM)

速度慢的外设------>内核:APB总线:Advanced Peripheral Bus 先进外设总线(GPIO、UART、TIMER)

六、典型的计算机主板

七、处理器修炼历程

八、SoC概念

九、汇编

处理器的编码是一串数字,比较难记,因此开发出了助记符号来降低开发难度提高效率,因此产生了汇编语言,又由于汇编语言的结构不是很清晰,因此人们采用了汇编语言来产生较高层次的语言(如C语言)。

编译的定义

编译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器语言)的翻译过程。

编译器:用于编译的软件为编译器。

编译的四个步骤

交叉编译 :在一个平台编写编译程序,在另一个平台运行程序。

十、开发ARM程序常用的集成开发环境

十一、面向应用的ARM最小系统

最小系统 :能系统能够正常工作的最少器件构成的系统。

十二、RAM与ROM

nor flash :任何一个字节可以被寻址,带有地址总线和数据总线;

nand flash:块设备数据,以512byte为一块进行读写数据。

十三、ARM体系架构

处理器工作模式

ARM有7个基本工作模式:

User:非特权模式,大部分任务执行在这种模式;

FIQ:当一个高优先级(fast)中断产生时将会进入这种模式;

IRQ:当一个低优先级(normal)中断产生时将会进入这种模式;

Supervisor(svc模式:默认模式):当复位或软中断指令执行时将会进入这种模式;

Abort:当存取异常时会进入这种模式;

Undef:当执行到未定义指令时会进入这种模式;

System:使用和User模式相同寄存器集的特权模式;

Cortex-A特有模式:

HYP模式:在线调试;

Monitor:是为了安全而扩展出的用于执行安全监控代码的模式;也是特权模式。

注意:除去黑色的其他不同颜色代表当前模式独有的寄存器。

ARM 寄存器

ARM有37个32-Bits长的寄存器.

1 个用作PC( program counter)

1个用作CPSR(current program status register)

5个用SPSR(saved program status registers)

30个通用寄存器

Cortex体系结构下有40个32-Bits长的寄存器

Cortex-A多出3个寄存器,Monitor模式r13_mon,r14_mon,spsr_mon当前处理器的模式决定着哪组寄存器可操作.任何模式都可以存取.

程序状态寄存器

程序指针PC

十四、异常处理

中断向量表:本质是一个数组,数组中存放的是中断服务函数的入口地址;

异常向量表:本质是一个数组,数组中存放的是跳转到异常服务函数的指令。

tips:

1)说出ARM可以工作的模式名字。

2)ARM核有多少个寄存器?

3)什么寄存器用于存储PC和LR寄存器?

4)R13通常用来存储什么?

5)哪种模式使用的寄存器最少?

6)在Thumb指令集中,哪些寄存器处于Low group?

7)CPSR的哪一位反映了处理器的状态?

8)所有的Thumb指令采取什么对齐方式?

9)ARM有哪几个异常类型。

10)为什么FIQ的服务程序地址要位于0X1C?

11)在复位后,ARM处理器处于何种模式、何种状态?

相关推荐
XiHongShi20161 小时前
键盘大小写指示器(代替键盘灯)
学习·计算机
斯维赤2 小时前
AI Agent学习之路 | Prompt Engineering(提示词工程)的三板斧核心技巧
人工智能·学习·prompt
myy-learn2 小时前
ARM-知识扫盲1
arm
2301_802651085 小时前
imx6ull裸机开发:UART
学习
辣知5 小时前
辣知·化智56 良渚神权与夏朝颠覆
学习
dadaobusi6 小时前
学习:三层交换机
学习
笨鸟先飞的橘猫6 小时前
树结构在游戏行业中的应用
学习·游戏
yangmu32037 小时前
从显像管到Micro-LED:屏幕的光之进化
学习·显示器
半生过往8 小时前
前端工程师学习智能体开发(一)
前端·学习·状态模式