基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统

学期要求

在这里插入图片描述
在这里插入图片描述

嵌入式系统基本概念

在这里插入图片描述
在这里插入图片描述

嵌入式系统重要特征

在这里插入图片描述

嵌入式系统硬件的基本组成

在这里插入图片描述

嵌入式处理器

在这里插入图片描述
在这里插入图片描述

1、嵌入式微控制器(MCU)

在这里插入图片描述
在这里插入图片描述

2、嵌入式DSP

在这里插入图片描述

3、嵌入式微处理器(MPU)

在这里插入图片描述

ARM体系结构版本——V3(关于CPSR和SPSR)

寻址范围扩展到32位(目前已废弃),主要改进如下:

  • 具有原子性加载/存储指令SWP和SWPB。
  • 当前程序状态信息从原来的R15移到一个新的寄存器 CPSR(当前程序状态寄存器)中
  • 增加了SPSR(备份程序状态寄存器) 当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR。
  • 增加了两种处理器模式,使操作系统代码方便地使用数据访问中止异常、指令预取终止异常和未定义指令异常
  • 增加了MRS指令和MSR指令,用于完成对CPSR和SPSR寄存器的读/写;修改了原来的从异常中返回的指令。

ARM体系结构版本——V4

在这里插入图片描述

ARM体系结构版本——V5

在这里插入图片描述

ARM体系结构版本——V6

在这里插入图片描述

ARM体系结构版本——V7

在这里插入图片描述

ARM命名规则

在这里插入图片描述

ARM7“TDMI”符号的含义

在这里插入图片描述

ARM体系结构比较(ARM7流水线3个,ARM9流水线5个)

在这里插入图片描述

什么是STM32?

在这里插入图片描述

Cortex内核

在这里插入图片描述

ARM7与STM32比较

在这里插入图片描述
在这里插入图片描述

51系列微控制器

在这里插入图片描述

ARM系列微控制器

在这里插入图片描述

嵌入式处理器的技术指标(CISC、RISC、冯诺依曼体系、哈佛体系)

  • (1)字长
    嵌入式处理器内部参与运算的数据最大位数。
  • (2)主频
    嵌入式处理器内核工作的时钟频率。 单位是MHz,GHz
  • (3)运算速度
    采用单位时间内各类指令的平均执行条数的表示 方法。通常是MIPS,DMIPS。
  • (4)指令集
    按照指令集架构分为:CISC(复杂指令集计算机Complex Instruction Set Computer)和RISC(精简指令集计算机Reduced Instruction Set Computer)
    在这里插入图片描述
    在这里插入图片描述
  • (5)体系结构根据存储机制的不同(CPU连接程序存储器与数据存储器的方式不同),分为:
    • 1)冯.诺依曼体系结构
      数据和指令都存储在一个存储器中的计算机称为冯. 诺依曼机。这种结构的计算机系统由一个中央处理器 单元(CPU)和一个存储器组成。 【例】51系列,ARM cortex-M0/M1
    • 2)哈佛体系结构
      哈佛结构为数据和程序提供了各自独立的存储器, 程序计数器只指向程序存储器而不指向数据存储器。 【例】ARM cortex-M3/M4
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
  • (6)流水线
    在这里插入图片描述
    在这里插入图片描述

三级流水(ARM7和ARM Cortex-M3)

在这里插入图片描述
在这里插入图片描述
程序计数器R15(PC)总是指向取指的指令,而不是指向正在执行的指令或正在译码的指令。 一般情况下,习惯把正在执行的指令作为参考点,称为当前第1条指令,因此,PC总是指向第3条指令

ARM指令有:PC值=当前程序执行位置+8
Thumb指令则有:PC值=当前程序执行位置+4

当处理器执行简单的数据处理指令时,流水线使得平均每个时钟周期能完成一条指令。但一条指令需要3个时钟周期来完成,因此,有3个时钟周期的延时(latency),但吞吐率(throughput)是每个周期一条指令。下面通过一个简单的例子说明流水线的机制。

指令序列为:

ADD r1 r2
SUB r3 r2
CMP r1 r3

在这里插入图片描述
在第一个周期,内核从存储器取出指令ADD;在第二个周期,内核取出指令SUB,同时对ADD译码;在第三个周期,指令SUB和ADD都沿流水线移动,ADD被执行,而SUB被译码,同时又取出CMP指令。可以看出,流水线使得每个时钟周期就可以执行一条指令。

ARM的流水线执行模式导致了一个结果,就是程序计数器PC(对使用者而言为r15)必须在当前指令执行前计数。例如,指令在其第一个周期为下下条指令取指,这就意味着PC必须指向当前指令的后8个字节(其后的两条指令)。
在这里插入图片描述
在这里插入图片描述

可参考的书籍资料

在这里插入图片描述

如果喜欢我的文章,请记得三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持,下期更精彩!!!

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值