历史上的今天
返回首页

历史上的今天

今天是:2025年12月20日(星期六)

2022年12月20日 | 想要从STM32小白成为达人,这些知识你必须知道

2022-12-20 来源:zhihu

首先,在学习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打好了基础...


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

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


推荐阅读

史海拾趣

Digilent公司的发展小趣事

DIALIGHT在全球范围内不断拓展业务,目前在美国、英国、丹麦、德国、马来西亚、新加坡、澳大利亚、墨西哥和巴西等地设有业务。公司的LED产品广泛应用于各种工业场所,包括石油和天然气、矿业、化工、制造业等。通过提供定制化的照明解决方案,DIALIGHT赢得了众多客户的信赖和好评。

DACHANG公司的发展小趣事

在追求经济效益的同时,DACHANG公司始终不忘承担社会责任。公司积极参与公益事业,关注环境保护和社会发展。无论是在捐款助学、扶贫济困还是在环保减排方面,DACHANG公司都积极履行自己的社会责任,为社会做出了积极贡献。这种对社会责任的担当和履行,不仅提升了DACHANG公司的品牌形象,也赢得了社会各界的广泛赞誉。

普芯达电子(Chipswinner)公司的发展小趣事

企业文化和团队建设是企业持续发展的基石。普芯达电子注重企业文化建设和团队建设,倡导“诚信、创新、协作、共赢”的价值观,营造了一个积极向上、团结和谐的工作氛围。公司注重员工的培训和发展,为员工提供了广阔的发展空间和良好的福利待遇。同时,普芯达电子还建立了完善的激励机制和绩效考核体系,激发了员工的工作积极性和创造力。这些措施的实施为公司的持续发展提供了有力的保障。

请注意,以上仅为故事框架的概述,你可以根据这些框架进一步扩展和详细化每个故事的内容。

BOSER公司的发展小趣事

在国内市场取得一定成绩后,BOSER公司开始积极寻求海外市场的扩张。公司加强与国际知名企业的合作,通过参加国际展览、举办技术研讨会等方式,不断提升品牌知名度和影响力。同时,BOSER还针对不同国家和地区的市场需求,推出定制化的产品和服务,成功打开了多个海外市场。

CUI Inc.公司的发展小趣事

自1989年成立以来,CUI Inc.一直站在电源设计的前沿。公司不断投资于研发,致力于开发出更高效、更环保的电源产品。通过引入先进的电源管理技术和创新的设计方法,CUI成功地帮助客户提高了应用的能效,减少了能源消耗。这种对电源技术的专注和创新,使CUI在竞争激烈的电子行业中脱颖而出,赢得了众多客户的信赖和好评。

Greenconn Corp公司的发展小趣事
首先观察冰箱内灯是否亮起,如果灯不亮,可能是断电保护电路故障。此外,还可以使用万用表测量继电器和定时器是否工作正常,以及检查线路连接是否牢固。

问答坊 | AI 解惑

大家好

我想学凌阳单片机,请问谁有这资料啊? 能快速入门的,有的话,传到我QQ邮箱可以吗? 593318868@qq.com 谢啦!!!!!!!!…

查看全部问答>

用单台处理机顺序计算表达式:f=a+be+ce^2+de^3,需几级?若用三台处理机计算此表达式,则只需几级?

用单台处理机顺序计算表达式:f=a+be+ce^2+de^3,需几级?若用三台处理机计算此表达式,则只需几级? …

查看全部问答>

SD卡读写问题!谢谢

我使用两个相同的板子,同一张SD卡,同样的wince系统; 在读写的时候却出现了不同的问题: 在A板上,读取正常,写入正常 在B板上,读取正常,写入失败 SD卡锁是同一个位置,没有锁住! 谢谢了…

查看全部问答>

wavecom来电应答的问题

最近做wavecom模块连单片机的项目,要做来电自动回复短信的模块,可是用at+clip=1的at命令后,打电话返回的是这样的字符串 +CLIP: \"618935\",129,,,\"8090B866535CF00032FFFF\" 这个是wavecom返回的数据,18935是我的号码的一部分,其他的就不 ...…

查看全部问答>

防腐热电阻技术参数

技术参数    1、防腐热电阻的聚四氟乙烯防腐层厚度:1.0mm(也可由用户指定)。   2、防腐热电阻的热响应时间:经防腐处理,热响应时间变化约20%(≤8S);   3、防腐热电阻的防腐层质量检验:采用电火花微孔探伤检测,电压12kV,频率1.6×10 ...…

查看全部问答>

请教MSP430F5510栈的问题

我用仿真器调试MSP430F5510,利用定时器和端口中断从低功耗模式中唤醒,工作模式是这样子的:      main() {    ……   while(1)  {     执行1;    ……   ...…

查看全部问答>

电感像继电器一样响一声

    做了一批设备,电源是220V直接供给开关电源的,开关电源部分用了一个贴片的绕线电感, 560uH的,上电的一霎拉电感响了一声,就像继电器一样,然后就不响了,电路也能正常工作, 不理解电感为什么会响。     ...…

查看全部问答>

TI WEBENCH 设计工具,让设计师工作更轻松

TI WEBENCH 设计工具,让设计师工作更轻松,更快捷简便~ …

查看全部问答>