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

学期要求

基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_第1张图片
基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_第2张图片

嵌入式系统基本概念

基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_第3张图片
基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_第4张图片

嵌入式系统重要特征

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

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

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

嵌入式处理器

基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_第7张图片
基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_第8张图片

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

基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_第9张图片
基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_第10张图片

2、嵌入式DSP

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

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

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

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

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

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

ARM体系结构版本——V4

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

ARM体系结构版本——V5

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

ARM体系结构版本——V6

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

ARM体系结构版本——V7

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

ARM命名规则

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

ARM7“TDMI”符号的含义

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

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

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

什么是STM32?

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

Cortex内核

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

ARM7与STM32比较

基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_第22张图片
基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_第23张图片

51系列微控制器

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

ARM系列微控制器

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

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

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

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

基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_第33张图片
基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_第34张图片
程序计数器R15(PC)总是指向取指的指令,而不是指向正在执行的指令或正在译码的指令。 一般情况下,习惯把正在执行的指令作为参考点,称为当前第1条指令,因此,PC总是指向第3条指令

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

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

指令序列为:

ADD r1 r2
SUB r3 r2
CMP r1 r3

基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_第35张图片
在第一个周期,内核从存储器取出指令ADD;在第二个周期,内核取出指令SUB,同时对ADD译码;在第三个周期,指令SUB和ADD都沿流水线移动,ADD被执行,而SUB被译码,同时又取出CMP指令。可以看出,流水线使得每个时钟周期就可以执行一条指令。

ARM的流水线执行模式导致了一个结果,就是程序计数器PC(对使用者而言为r15)必须在当前指令执行前计数。例如,指令在其第一个周期为下下条指令取指,这就意味着PC必须指向当前指令的后8个字节(其后的两条指令)。
基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_第36张图片
基于ARM Cortex-M3微控制器(STM32系列)基础知识(一)——嵌入式微控制器及嵌入式系统_第37张图片

可参考的书籍资料

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

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

你可能感兴趣的:(嵌入式,stm32,ARM,程序人生)