Day1-arm体系结构概述

Day1-arm体系结构概述

STM32内部构造

一、必须get的ARM知识

1、ARM公司简介

ARM(Advanced RISC Machines),三种含义:(1)公司名称 (2)一类微处理器的通称 (3)技术名称

该公司不生产芯片,将设计方案提供半导体厂商,由半导体厂商生产SOC,并出售。

提供一些其他设计服务,如物理IP,图形内核和开发工具设计。

2、ARM处理器家族(CPU)

分四类:(1)早期经典处理器、(2)Cortex-M系列 (3)Cortex-A系列 (4)Cortex-R系列

  1. 早期经典处理器:如ARM7、ARM9、ARM11家族。

  2. Cortex-M系列 :Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7

​ 主要用于单片机,偏向控制领域。如意法半导体的STM32。为单片机驱动系统提供低成本优化方案。

  1. Cortex-A系列 :Cortex-A5、Cortex-A7、Cortex-A8、Cortex-A9、Cortex-A15、Cortex-A53、Cortex-A57。

​ 主要针对操作系统,偏向处理领域。如安卓系统,应用于智能手机、智能电视等高端运用。

  1. Cortex-R系列 :Cortex-R4、Cortex-R5、Cortex-R7。

​ 主要针对实时系统,偏向时间领域。对数据实时响应速率较高。如汽车刹车系统。汽车制动系统,动力系统。

3、ARM处理器(CPU)架构

  • 2个内容:(1)指令集 (2)编程模型(基本数据类型、工作模型、寄存器组)

  • 注意点:同种体系结构,可以有多种处理器。每个处理器性能不同,应用领域不同。

ARM体系结构发展

现共定义8个版本 V1-V8

最早: V1 - V3 已废弃

经典:V4 - V6 经典处理器运用较多。

主要: V7 目前Cortex系列处理器主流,支持Thumb-2的32位指令集。

最新: V8 兼容ARMV7架构特性,并支持64位数据处理

  • 指令集

概念:处理器识别并执行的指令集合。

​ 特点:(1)每条指令可处理一个简单或复杂的操作。(2)每条指令都有所对应的汇编指令(一条或多条)

​ 分类: (1)复杂指令集(CISC) complex instruction set computer 包含处理复杂操作的特定指令,指令长度 不固定,执行需多周期。例如:英特尔PC
(2) 精简指令集(RISC) 指令简单有效,格式长度固定,可在一周期内执行完毕。如:ARM内核。 ARM内核基于RISC体系结构。

4、SOC的概念

概念:SOC片上系统,指单个芯片集成一个完整的计算机操作系统(包含中央处理器(CPU)、存储器、外围电路)

  • 注意点:STM32 所说的F0、F1、F2指的是SOC片上系统不同。而说的英特尔和ARM指的是SOC片上系统里面的CPU。

  • 常见Cortex-M系统SOC举例:意法半导体(ST)、恩智浦(NXP)、德州仪器(TI)、新塘科技(nuvoton)(Cortex-M0和Cortex-M4)等。

二、Cortex-M0处理器介绍

1、Cortex-M0处理器简介

(1)Cortex内核分类

Cortex内核根据ARM名称分为A系列、R系列和M系列。 A系列用于高端应用处理器,R系列用于高性能实时系统(刹车系统)和M系列用于微控制器应用(单片机)

  • Cortex-M0主打低功耗和混合信号处理。

  • Cortex-M3代替ARM7 侧重能耗与性能的平衡。

  • Cortex-M7高性能控制运算领域。

  • F0系列使用Cortex-M0内核。

  • F1系列使用Cortex-M3内核。

  • F4系列使用Cortex-M4内核。

2、Cortex-M0体系结构

(2)Cortex-M0结构框图

​ 处理器内核:主要完成逻辑控制与运算。通过单总线和总线接口与存储器进行交互

​ 嵌套向量中断控制器(NVIC):帮助CPU处理外部中断请求。对中断进行优先级排列。

​ 唤醒中断控制器(WIC)

​ 扩充:冯诺依曼架构和哈弗架构

​ 冯诺依曼架构:数据和指令通过一条总线和存储器及外设进行交互。举例:Cortex-M0

​ 哈弗架构:数据和指令通过两条总线(IBUS和DBUS)和存储器及外设进行交互 举例:Cortex-M3

(3)Cortex-M0特性

(4)Cortex-M0的两种工作模式和两种工作状态

  • 两种工作模式:线程模式和处理模式。

    • 线程模式:(Thread Mode)芯片复位后,即进入线程模式,执行用户程序。
    • 处理模式:当处理器发生异常或中断,则进入处理模式处理,处理完成后返回线程模式。
  • 两种工作状态:Thumb状态和调试状态。

    • Thumb状态:正常运行时处理器的状态。
    • 调试状态:调试程序时处理器的状态。

(5)Cortex-M0寄存器组——通用寄存器

13个通用寄存器和多个特殊寄存器

通用寄存器:R0-R12。

R0-R7:为低端寄存器 作为16位或32位指令操作数。

R8-R12:为高端寄存器 作为32位指令操作数。

堆栈指针SP:R13(有两个)

R13(MSP):主栈指针。在处理模式下只能使用主栈指针。

R13(PSP):进程栈指针。在线程模式下既可以使用主堆栈,又可以使用进程堆栈。由CONTROL寄存器控制完成。

连接寄存器(LR):R14用于存储子程序或者函数调用的返回地址。

程序计数器(PC):R15存储下一条将要执行的指令的地址。

(6) Cortex-M0寄存器组——特殊寄存器

  • XPSR:组合程序状态寄存器,该寄存器由三个程序状态寄存器组成

  • 应用PSR(APSR):包含前一条指令执行后的条件标志

  • 中断PSR(IPSR):包含当前ISR的异常编号

  • 执行PSR(EPSR):包含Thumb状态位 T位负责切换ARM和Thumb 注:如Cortex-M0只支持Thumb指令集因此T位为固定位。

  • PRIMSK:中断屏蔽特殊寄存器

  • 控制处理器处于线程模式 =0,使用MSP

    ​ =1,使用PSP

  • 控制处理器处于处理器模式时,固定使用MSP。

  • 注:系统启动时,控制处理器默认的方式是MSP(主栈指针)

3、Cortex-M0异常和中断

cortexM0 异常分为两种 中断和异常。无论那种都是跳到固定的入口进行请求

  • 外设中断请求称为中断
  • 内核中断请求称为异常

4、Cortex-M0指令集

ARM处理器支持两种指令集:ARM和Thumb。

EPSR寄存器的T标志位负责指令集的切换,cortex-M0只支持Thumb指令

  • ARM指令集

  • 32位精简指令集

  • 指令长度固定

  • 降低编码数量产生的耗费,减轻解码和流水线的负担

  • Thumb指令集

  • Thumb指令集是ARM指令集的一个子集;

  • 指令宽度16位

  • 与32位指令集相比,节约系统存储空间

  • Thumb指令集不完整,所以需配合ARM指令集一同使用

  • 注意点:

  • Thumb与ARM相比,代码体积小了30%,但性能也被降低了20%。

  • Thumb-2技术 具备一些32位的Thumb指令,使得原来只有用ARM指令能够完成的功能,用Thumb指令也可以完成。

  • Cortex-M0基于ARMv6-M体系结构,该体系结构的处理器只是用了16位Thumb指令和部分32位Thumb指令。

三、认识STM32

1、STM32F0体系架构

系统主要由以下几个模块构成

  • 两个主模块
  • Cortex-M0 内核及先进高性能总线(AHB bus)
  • 通用DMA(GP-DMA-general purpose DMA)
  • 四个从模块
  • 内部FLASH
  • 内部SRAM
  • 专门用于连接GPIO口的AHB2
  • AHB到APB的桥,所有的外设都挂在APB总线上
  • AHB:高速总线。例:FLASH、SRAM、AHB2GPIO等
  • APB:外设总线。例:RTC、I2C、USART等
  • BusMatrix:总线矩阵单元进行仲裁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值