当前位置:   article > 正文

基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_基于arm cortex-m3的stm32 嵌入式系统原理及应用

基于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个字节(其后的两条指令)。
在这里插入图片描述
在这里插入图片描述

可参考的书籍资料

在这里插入图片描述

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/280960
推荐阅读
相关标签
  

闽ICP备14008679号