我们从2011年坚守至今,只想做纯粹的技术论坛,请不要发布和技术无关的话题。  本站有两万多份高大上的PCB和原理图下载,每日更新中,欢迎常回来看看

 找回密码
 立即注册
搜索
查看: 3565|回复: 17

[其他] 想要从STM32小白成为达人,这些你必须知道

[复制链接]

4

主题

33

回帖

175

积分

二级逆天

积分
175

终身成就奖特殊贡献奖

发表于 2018-12-29 11:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
首先,在学习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:私有外设总线



Cortex-M3芯片简介

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



                               
登录/注册后可看大图


2、关于ARMv7的知识了解


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


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


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


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


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


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


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


3、Cortex-M3处理器的舞台


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


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



4、Cortex-M3的简化图



                               
登录/注册后可看大图


5、寄存器组


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



                               
登录/注册后可看大图


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


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


6、Cortex-M3的简评



a、高性能


许多指令都是单周期的——包括乘法相关指令。并且从整体性能上,Cortex-M3比得过绝大多数其它的架构。


指令总线和数据总线被分开,取值和访内可以并行不悖 。


Thumb-2的到来告别了状态切换的旧世代,再也不需要花时间来切换于 32位 ARM状态和16位Thumb状态之间了。这简化了软件开发和代码维护,使产品面市更快。


Thumb-2指令集为编程带来了更多的灵活性。许多数据操作现在能用更短的代码搞定,这意味着 Cortex-M3的代码密度更高,也就对存储器的需求更少。


取指都按 32位处理。同一周期最多可以取出两条指令,留下了更多的带宽给数据传输。


Cortex-M3的设计允许单片机高频运行(现代半导体制造技术能保证 100MHz以上的速度)即使在相同的速度下运行,CM3的每指令周期数(CPI)也更低,于是同样的 MHz下可以做更多的工作;另一方面,也使同一个应用在 CM3上需要更低的主频。


b、先进的中断处理功能


内建的嵌套向量中断控制器支持240条外部中断输入。向量化的中断功能大大减少了中断延迟,因为不在需要软件去判断中断源。中断的嵌套也是在硬件水平上实现的,不需要软件代码来实现。


Cortex-M3在进入异常服务例程时,自动压栈了 R0-R3, R12, LR, PSR 和PC,并且在返回时自动弹出它们,这多清爽!既加速了中断的响应,也再不需要汇编语言代码了


NVIC支持对每一路中断设置不同的优先级,使得中断管理极富弹性。最粗线条的实现也至少要支持 8级优先级,而且还能动态地被修改。


优化中断响应还有两招,它们分别是“咬尾中断机制”和“晚到中断机制”。


有些需要较多周期才能执行完的指令,是可以被中断-继续的——就好比它们是一串指令一样。


这些指令包括加载多个寄存器(LDM),存储多个寄存器(STM),多个寄存器参与的PUSH,以及多个寄存器参与的 POP。


除非系统被彻底地锁定,NMI(不可屏蔽中断)会在收到请求的第一时间予以响应。对很多安全-关键(safety-critical)的应用,NMI都是必不可少的(如化学反应即将失控时的紧急停机)。


通过上面我们可以很容易理解STM32的一些基本知识和结构,为学习STM32打
  • 打卡等级:初入少年
  • 打卡总天数:1
  • 打卡月天数:0
  • 打卡总奖励:1
  • 最近打卡:2026-07-31 18:00:05

1

主题

1156

回帖

1958

积分

二级逆天

积分
1958

终身成就奖优秀斑竹奖

QQ
发表于 2018-12-29 13:15 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家III
  • 打卡总天数:400
  • 打卡月天数:0
  • 打卡总奖励:1334
  • 最近打卡:2025-11-20 23:18:22

69

主题

7758

回帖

1万

积分

三级逆天

积分
11327

社区居民社区劳模原创先锋奖终身成就奖特殊贡献奖优秀斑竹奖

QQ
发表于 2018-12-29 14:52 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家I
  • 打卡总天数:78
  • 打卡月天数:0
  • 打卡总奖励:262
  • 最近打卡:2026-04-21 17:03:37

6

主题

3753

回帖

3815

积分

二级逆天

积分
3815

终身成就奖社区居民优秀斑竹奖

QQ
发表于 2018-12-29 20:09 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:初入少年
  • 打卡总天数:9
  • 打卡月天数:0
  • 打卡总奖励:26
  • 最近打卡:2026-03-24 11:46:37

5

主题

3470

回帖

4673

积分

二级逆天

积分
4673

社区居民终身成就奖优秀斑竹奖

QQ
发表于 2018-12-29 21:08 | 显示全部楼层
回复

使用道具 举报

0

主题

1673

回帖

1767

积分

二级逆天

积分
1767

终身成就奖原创先锋奖优秀斑竹奖

QQ
发表于 2018-12-30 02:54 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:初入少年
  • 打卡总天数:1
  • 打卡月天数:0
  • 打卡总奖励:2
  • 最近打卡:2024-07-08 15:22:20

60

主题

3573

回帖

1万

积分

PADS-181217初级班

积分
16096

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

发表于 2018-12-30 08:43 | 显示全部楼层
回复

使用道具 举报

5

主题

1033

回帖

903

积分

1元学习Allegro(1期)

积分
903

终身成就奖优秀斑竹奖

QQ
发表于 2018-12-30 09:08 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:常住青年
  • 打卡总天数:17
  • 打卡月天数:0
  • 打卡总奖励:61
  • 最近打卡:2025-01-13 19:11:02

0

主题

8150

回帖

7628

积分

二级逆天

积分
7628

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

QQ
发表于 2018-12-30 10:51 | 显示全部楼层
回复

使用道具 举报

8

主题

157

回帖

74

积分

一级逆天

积分
74

社区居民终身成就奖

QQ
发表于 2019-1-15 16:44 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请举报投诉

本站所有资料仅限参考学习交流,PCB原理图源码等所有资料不保证准确没问题,请不要用作生产。否则后果自负。

闽公网安备35062302000276号 | 闽ICP备2024076463号-1 | 论坛技术支持QQ群171867948 | 论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表