历史上的今天
返回首页

历史上的今天

今天是:2025年01月28日(星期二)

2021年01月28日 | 一篇很简单,有必要了解的文章 - STM32复位来源(寄存器版)

2021-01-28 来源:eefocus

最近项目遇到了一个问题:一个子系统,具有IAP升级的功能,Bootloader位于0x08000000,也就是说系统在运行过程允许复位。但是,该子系统需要在上电的过程中处理某项任务(而且只需要上电的那一次)。


问题来了:我们如何判断系统是第一次上电复位?


解决的办法有很多种,但是最简单的办法就是获取系统复位来源,详情请看文章。


其实,这篇文章的内容也能回答之前一位网友的问题,不知你会不会阅读本文。


RCC复位和时钟控制

RCC:Reset and Clock Control

相信大家都知道RCC是什么,主要就是讲述复位和时钟的章节。先来讲述一下复位种类。


STM32的复位大概分为三类:系统复位、电源复位和后备域复位。

系统复位:

1. NRST引脚上的低电平(外部复位)

2. 窗口看门狗计数终止(WWDG复位)

3. 独立看门狗计数终止(IWDG复位)

4. 软件复位(SW复位)

5. 低功耗管理复位


电源复位:

1. 上电/掉电复位(POR/PDR复位)

2. 从待机模式中返回


备份区域复位:

1. 软件复位,备份区域复位可由设置备份域控制寄存器(RCC_BDCR)中的BDRST位产生。

2. 在VDD和VBAT两者掉电的前提下, VDD或VBAT上电将引发备份区域复位。


RCC_CSR

CSR:Control/Status Register,即控制/状态寄存器。


在STM32种,RCC的寄存器和功能因芯片的不同而不同,但RCC_CSR寄存器是众多STM32种都具有的一个。

图片

这个寄存器就会记录各种复位的状态,我们只需要读取这个寄存器即可知道是什么样子引起的复位。


源代码实例

上面说了那么多,其实大家都容易理解,但只有真正实测过源代码,才能真正起到掌握的作用。


为了方便某些懒惰的朋友,我将提供测试源代码,方便大家学习和掌握。


本文源代码给予前面文章【CM3内核复位与系统复位区别及应用】提供的源代码的基础上修改而来。


现在主要看下测试源代码和测试效果:

图片


各种情况打印结果:

1.上电复位打印信息

CSR = C000000

5.POR/PDR reset

6.PIN reset

Demo...

Demo...


2.按键(PIN)复位打印信息

CSR = 4000000

6.PIN reset

Demo...

Demo...


3.内核复位 NVIC_CoreReset();打印信息

CSR = 0

Demo...

Demo...



4.系统复位 NVIC_SysReset();打印信息

CSR = 14000000

4.Software reset

6.PIN reset

Demo...

Demo...


到了这一步,相信大家基本明白了。但是,还有值得进一步分析的地方,这里我算是给大家安排的作业(只有愿意动脑思考的人,才会有进步)。


为了方便大家学习,我将源代码提供给大家下载(虽只有STM32F1,但其他系列类似)。

STM32F103ZE(Keil)_复位来源(寄存器版):

http://pan.baidu.com/s/1hskScba


推荐阅读

史海拾趣

Delock公司的发展小趣事

随着公司规模的扩大和产品线的丰富,Delock公司开始积极拓展国际市场。公司先是在欧美等发达国家设立了办事处和分销中心,随后又逐步进入亚洲、非洲等新兴市场。为了更好地满足全球用户的需求,Delock公司还针对不同地区的市场特点进行产品定制和营销策略的调整。这一系列的全球化战略让Delock公司的产品在全球范围内获得了广泛的认可和应用。

捷茂微(GATEMODE)公司的发展小趣事

Delock公司自创立之初,就致力于电子连接技术的研发。公司创始人李先生敏锐地洞察到市场对高性能、稳定可靠的电子连接设备的需求,于是带领团队投入大量资源进行技术研发。经过数年的努力,Delock公司成功开发出一种具有革命性意义的电子连接器,不仅传输速度快,而且耐用性高,迅速在市场上获得了认可。这一创新不仅为Delock公司带来了可观的利润,也为公司在电子行业树立了技术领先的形象。

DAESAN公司的发展小趣事

在电子行业中,环保问题一直备受关注。DAESAN公司深知自己的社会责任和担当,因此将环保理念融入企业的生产经营之中。他们采用环保材料和生产工艺,减少污染物排放;同时,他们还积极参与各种环保活动和公益事业,推动行业的可持续发展。DAESAN公司的环保举措赢得了社会的广泛赞誉和尊重。

请注意,以上故事均基于假设性的事实进行虚构,可能与DAESAN公司的实际情况存在出入。如需了解更多关于DAESAN公司在电子行业中的具体发展故事,请查阅相关新闻报道和官方资料。

Flexxon Pte Ltd公司的发展小趣事

随着电子行业的不断发展和市场需求的日益多样化,Flextronics(Flexxon Pte Ltd)开始实施多元化战略,积极拓展新的业务领域。公司不仅继续深耕消费电子、通信设备等传统市场,还积极涉足汽车电子、医疗电子、物联网等新兴领域。通过并购、合作等多种方式,Flextronics不断拓宽产品线和服务范围,为客户提供更加全面和专业的解决方案。这一战略调整不仅为公司带来了新的增长点,也进一步提升了公司的市场竞争力。

Alpha & Omega Semiconductor(万国半导体)公司的发展小趣事

随着电子行业的不断发展和市场需求的日益多样化,Flextronics(Flexxon Pte Ltd)开始实施多元化战略,积极拓展新的业务领域。公司不仅继续深耕消费电子、通信设备等传统市场,还积极涉足汽车电子、医疗电子、物联网等新兴领域。通过并购、合作等多种方式,Flextronics不断拓宽产品线和服务范围,为客户提供更加全面和专业的解决方案。这一战略调整不仅为公司带来了新的增长点,也进一步提升了公司的市场竞争力。

高通(GENITOP)公司的发展小趣事

70年代,全球电子产品热潮兴起,金山工业决定进军这一领域。公司推出了碱性和氧化的银钮型电池,这些产品广泛应用于电子手表、计算机等小型电子设备中。这一战略转型不仅丰富了超霸电池的产品线,也进一步提升了其在电子行业的知名度。随着技术的不断积累,超霸电池逐渐在市场中占据了一席之地。

问答坊 | AI 解惑

【求助】哪里可以查到高频中的术语的

收音机中有个选台,控制频率的调谐器,不知道大家接触过没有,其中遇到了很多专业术语,如:信噪比,感度,中心中间周波数 谁有这方面的书籍推荐下? …

查看全部问答>

VxWorks内存管理方案

    改进的缓冲区管理模块的作用在于加强VxWorks实时操作系统对内存的管理,并为上层应用程序提供所需内存申请和释放工作。因此改进模块位于VxWorks实时操作系统模块和应用程序模块之间。     CPU实际物理内存在bootRoom启动 ...…

查看全部问答>

友善之臂 2440 ads 工程模板

本帖最后由 paulhyde 于 2014-9-15 04:22 编辑 直接解压放入ads安装包的Stationery 即可  …

查看全部问答>

请问如何通过软件编程实现MSP430中系统时钟的调用?

我用的是MSP430F149的单片机,我想通过软件编程实现系统时钟的调用,也就是想在软件中调用系统时钟,请问我要怎么编程呢,谢谢!…

查看全部问答>

cyclone系列的FPGA内核和IO口消耗电流

cyclone系列的FPGA内核和IO口消耗电流多大,内核电压为1.2V,IO电压为3.3V,分别消耗电流多大,现在画PCB,需要确定线路粗细。 谢谢啊,…

查看全部问答>

圆光栅传感器中的莫尔条纹

我在自修传感器的课程。希望有高手能够指导下。可以以Q币的形式支付教学。有愿意帮忙的 请加QQ42160090      请问圆光栅传感器的莫尔条纹是如何计算的。。…

查看全部问答>

单片机工程师进

有没有搞单片机开发的,深圳这边的,有时间搞的请联系13823288241,姚生…

查看全部问答>

SHOW--LPC1114之模拟指针式时钟

现在很多手机上,不仅有数字时钟,还有指针式时钟作为装饰,比如右面这张图,如果自己动手做一个的话,岂不是很好玩。     指针式时钟,我以前动手做了一个,不过,那时候用LCD12864做的,由于LC12864的分辨率问题,实际效果还 ...…

查看全部问答>

TI Design 几种电流源参考设计

作者 Wayne Xu TI Design 上线以来很受工程师的欢迎。TI的产品线应用工程师,也设计出几款经典的电流源电路,最小是5uA,最大2A。每一个方案都给出了完整的原理图,仿真文件,PCB layout以及测试结果。 接下来对这几个方案一一做一下简单介绍,并 ...…

查看全部问答>