STM32的这些经典功能,你真的掌握了吗?


首先,在学习Cortex-M3时,我们必须要知道必要的缩略语。

整理如下:

AMBA:先进单片机总线架构 ADK:AMBA设计套件
AHB:先进高性能总线 AHB-AP:AHB访问端口
APB:先进外设总线 
ARM ARM:ARM架构参考手册
ASIC:行业领域专用集成电路 ATB :先进跟踪总线
BE8:字节不变式大端模式 CPI:每条指令的周期数
DAP:调试访问端口 DSP:数字信号处理(器)
DWT:数据观察点及跟踪 ETM:
嵌入式跟踪宏单元
FPB:闪存地址重载及断点 FSR:fault状态寄存器
HTM:Core Sight AHB跟踪宏单元
ICE:在线仿真器 IDE:集成开发环境
IRQ:中断请求(通常是外中断请求)
ISA:指令系统架构 ISR:中断服务例程
ITM:仪器化跟踪宏单元
JTAG:连接点测试行动组(一个关于测试和调试接口的标准)
LR:连接寄存器
LSB:最低有效位
MSB:最高有效位
LSU:加载存储单元
MCU:微控制器单元
MPU:存储器保护单元
MMU:存储器管理单元
MSP:主堆栈指针
NMI:不可屏蔽中断
NVIC:嵌套向量中断控制器
PC:程序计数器
PPB:私有外设总线

同时,还要如下规定:

数值

1. 4''hC , 0x123 都表示16进制数
2. #3表示数字3 (e.g., IRQ #3 就是指3号中断)
3. #immed_12表示一个12位的立即数
4. 寄存器位。通常是表示一个位段的数值,例如
bit[15:12] 表示位序号从15往下数到12,这一段的数值。

寄存器访问类型

1. R 表示只读
2. W表示只写
3. RW 表示可读可写(前3条好像地球人都知道)
4. R/Wc 表示可读,但是写访问将使之清 0

Cortex-M3芯片简介

1、芯片的基本结构如下图

2、关于ARMv7的知识了解

在这个版本中,内核架构首次从单一款式变成3种款式。

款式A:设计用于高性能的“开放应用平台”——越来越接近电脑了 。

款式R:用于高端的嵌入式系统,尤其是那些带有实时要求的——又要快又要实时。

款式M:用于深度嵌入的,单片机风格的系统中。

介绍A:用于高性能的“开放应用平台”,应用在那些需要运行复杂应用程序的处理器。支持大型嵌入式操作系统。

R:用于高端的嵌入式系统,要求实时性的。

M:用于深度嵌入的、单片机风格的系统中。

在一般的单片机的实验或开发时,编程器是必不可少的装置。仿真、调试完的程序需要借助编程器烧到单片机内部或外接的程序存储器中。普通的编程器价格从几百元到几千元不等,对于一般的单片机用户来说还是一笔不小的开支。另外,在开发过程中,程序每改动一次就要拔下电路板上的芯片编程后再插上,这样不但麻烦也很容易对芯片和电路板造成损伤,另外在程序需要升级做改动时,必须将设备返厂或是技术人员到现场操作,既不方便也造成成本浪费。

3、Cortex-M3处理器的舞台

高性能+高代码密度+小硅片面积,使得CM3大面积地成为理想的处理平台,主要应用在以下领域:

(1)低成本单片机
(2)汽车电子
(3)数据通信
(4)
工业控制
(5)消费类电子产品

4、Cortex-M3概览

(1)简介


Cortex-M3是一个 32位处理器内核。内部的数据路径是 32位的,寄存器是 32位的,存储器接口也是 32 位的。CM3 采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。这样一来数据访问不再占用指令总线,从而提升了性能。为实现这个特性, CM3内部含有好几条总线接口,每条都为自己的应用场合优化过,并且它们可以并行工作。但是另一方面,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统)。

比较复杂的应用可能需要更多的存储系统功能,为此CM3提供一个可选的MPU,而且在需要的情况下也可以使用外部的 cache。另外在CM3中,Both小端模式和大端模式都是支持的。

(2)Cortex-M3的简化图


    (3)寄存器组


处理器拥有R0-R15的寄存器组,其中R13最为堆栈指针SP,SP有两个,但是同一时刻只能有一个可以看到,这就是所谓的“banked”寄存器。

a、R0-R12都是 32位通用寄存器,用于数据操作。但是注意:绝大多数 16位Thumb指令只能访问R0-R7,而 32位 Thumb-2指令可以访问所有寄存器。

b、Cortex-M3拥有两个堆栈指针,然而它们是 banked,因此任一时刻只能使用其中的一个。

主堆栈指针(MSP):复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理例程(包括中断服务例程)

进程堆栈指针(PSP):由用户的应用程序代码使用。
---堆栈指针的最低两位永远是0,这意味着堆栈总是4字节对齐的。---

c、R14:连接寄存器--当呼叫一个子程序时,由R14存储返回地址

d、R15:程序计数寄存器--指向当前的程序地址,如果修改它的值,就能改变程序的执行流(这里有很多高级技巧)

软件上:串口调试助手这个工具可以模拟下面的单片机给HMI发送数据,还可以看到上面HMI发送的指令,但是指令需要自己计算,得出。

生成海报
点赞 0

thePro

我还没有学会写个人说明!

相关推荐

KEIL5安装STM32的芯片支持包

第一步: 找到芯片支持包的网址 https://www.keil.com/dd2/Pack/ 第二步:找到STM32系列的芯片支持包 第三步:下载完后得到 将该文件加入到KEIL5的安装目录中 接

ESP32S2+ES8388移植过程及问题

电路图如下, 有点小瑕疵ES8388_VMID PIN10/19/20电容没有忘加,查资料应该不影响语言输出,可能噪音大,如果能导致不输出请告诉我一下。 ESP32S2管脚映射 这里主

【STM32Cube笔记】2-STM32Cube安装教程

【STM32Cube笔记】系列文章目录 1-基于STM32的VSCode入门级教程前言 2-STM32Cube安装教程 3-STM32CubeIDE汉化 4-STM32Cube配置时钟设置 5-跑马灯引脚配置 6-Cortex-M7内核基本配