复位理论基础
先收集资料,了解当前常用的基础理论和实现方式
复位
- 初始化微控制器内部电路
- 将所有寄存器恢复成默认值
- 确认MCU的工作模式
- 禁止全局中断
- 关闭外设
- 将IO设置为高阻输入状态
- 等待时钟趋于稳定
- 从固定地址取得复位向量并开始执行
造成复位的原因
-
有多种引起复位的因素,有相应的标志位和向量(可以进行不同的初始化流程)
- 上电复位
- 电源丢失复位
- 外部产生的手动复位信号
- 执行复位指令引发的复位
- 非法指令引起的复位
- 时钟丢失引起的复位
- 看门狗复位
1. ARM复位源类型
ARM处理器的复位源类型如表所示,包括上电复位、外部硬件复位、内部硬复位(包括锁相环失锁复位、软件看门狗复位、检错停机复位和调试端口硬复位)、JTAG复位、外部软件复位和内部软件复位(包括调试端口软复位和JTAG软复位)。
所有的这些复位源都被引入到复位控制器,并且根据不同的复位源产生不同的复位动作。
ARM处理器还内置有复位控制器和硬件复位配置控制器,其中的复位控制器功能是确定复位原因、同步复位模块(若有必要的话),并且复位相应片内的逻辑模块(包括ARM嵌入式处理器模块、系统接口单元模块和通信处理器模块等)。
2. 复位工作原理
为保证ARM芯片在电源未达到所要求的电平时,不会产生不受控制的状态,必须在系统中加入电源监控和复位电路,由该电路确保在系统加电过程中,在内核电压和外围端口电压达到要求之前,ARM芯片始终处于复位状态,直到内核电压和外围接口电压达到所要求的电平。系统复位过程如图所示。
同时,如果电源电压一旦降到门限值以下,则强制芯片进入复位状态,以确保系统稳定工作。对于复位电路的设计,一方面应确保复位低电平时间足够长(一般需要20ms以上),以保证ARM可靠复位;另一方面应保证稳定性良好,以防止ARM误复位。
此外,ARM系统中还可以用硬件监控复位(看门狗电路,如硬件监控芯片MAX706等)。这是由于ARM系统的时钟频率较高,在运行时难以避免发生干扰和被干扰的现象,严重时系统会出现死机或程序异常现象,可以采用“看门狗”(Watch dog)电路来代替RC电路。这种电路除了具有上电复位功能外,还具有监视系统运行并在系统发生故障或死机时再次进行复位的能力。
该电路的功能为:当看门狗使能时,系统如果没有在规定时间间隔内对看门狗电路进行刷新,则产生复位信号,使系统重新从初始状态开始执行,以提高系统抗干扰能力。看门狗电路在上电复位后,应处于禁止状态,看门狗电路通过将系统控制寄存器0(Watchdog)中的控制位WDEN置1来使能。看门狗电路使能后,通过对看门狗刷新口做写操作,来刷新看门狗。
参考
1、作者 | 博文 |
深入理解复位---同步复位,异步复位,异步复位同步释放(含多时钟域) | |
RTL设计- 多时钟域按顺序复位释放 | |
fpga复位的几种方法 | |
异步复位同步释放_异步复位,同步释放 | |
不得不读的 FPGA 设计白皮书——Xilinx FPGA 复位策略白皮书翻译(WP272)【FPGA探索者】 | |
复位电路 | |
STM32的复位方式:硬件复位、软件复位(看门狗复位和系统复位) | |
关于复位芯片MAX809,看这一篇就够了 | |
复位电路之深入理解 | |
相关文章:
复位理论基础
先收集资料,了解当前常用的基础理论和实现方式 复位 初始化微控制器内部电路 将所有寄存器恢复成默认值确认MCU的工作模式禁止全局中断关闭外设将IO设置为高阻输入状态等待时钟趋于稳定从固定地址取得复位向量并开始执行 造成复位的原因 有多种引起复位的因素&…...
Python基础知识——列表
列表 列表是可以存放任何数据,包括整型,浮点型,字符串,布尔型等等,是常用的数据类型之一。 1.列表的创建 列表也是一个可迭代对象 1. 普通形式l [1,2,3,4,5] ---整型列表l ["a","b","c&…...
如何使用工时表管理项目和非项目的资源?
对新机会做出反应的能力是企业竞争优势的关键。项目不断涌现,企业需要了解具体的可用性以及是否有资源来接受新事物。更进一步来说,企业需要知道员工将时间花在哪里。 使用 8Manage工时表解决方案,你将始终拥有做出正确业务决策所需的全面知…...
项目经理如何做好质量保证与标准维持?非技术项目经理如何做好质量管控?
项目经理如何做好质量保证与标准维持?非技术项目经理如何做好质量管控?01.质量保障需要重视哪些执行层面的细节02.非技术出身项目经理如何做好质量保障工作03.质量管理除了PDCA,还有哪些推荐的方法04.质量保证与标准维持,作为常态…...
[文件操作] File 类的用法和 InputStream, OutputStream 的用法
能吃是不是件幸福的事呢 文章目录前言1. 文件的相关定义2. 文件类型3. Java对文件系统的操作3.1 对文件的基础操作3.2 读文件3.3 写文件前言 从这章开始,我们就开始学文件操作相关的知识了~ 1. 文件的相关定义 1.文件的定义可以从狭义和广义两个方面解释. 狭义: 指硬盘上的文…...
索莫菲模型的一些理解 Smomerfeld Model
如何解释传统热容算出来的数值与量子模型下的区别? 因为只有费米能附近的电子才能够进行移动,这个是问题的差别所在 我们下面就来介绍如何求费米能(费米能的计算) 既然费米能附近的电子很重要,那么附近的电子有多少很…...
SAP ERP系统MM模块常用增强之四:采购申请输入字段的校验检查
在SAP/ERP项目的实施中采购管理模块(MM)的创建和修改采购申请一般都会有输入字段校验检查的需求,来防止业务人员录入错误或少录入数据,这方面需求部分是可以通过配置实现,比如一些字段是否必输,是否显示等&…...
STM32C0介绍(1)----概述
概述 STM32C0系列微控制器是意法半导体公司推出的一款低功耗、高性能的微控制器产品。它们被设计用于需要小型、低功耗和高度可集成的应用程序,如传感器、消费品、电池供电设备、家庭自动化和安全等应用。该系列的微控制器采用ARM Cortex-M0内核,具有丰…...
windows无盘启动技术开发之传统BIOS(Legacy BIOS)引导程序开发之一
by fanxiushu 2023-03-01 转载或引用请注明原始作者。这个话题可能有点老,UEFI BIOS 已经大量存在,而Legacy BIOS最终会被取代。但是也是作为无盘启动技术里不可或缺的,毕竟还有许多老型号的电脑存在,而且为了兼容性,有…...
mysql实现if语句判断功能的六种使用形式
文章目录 前言一、ifnull函数二、nullif函数三、if函数四、if语句(多用于存储过程)五、if-else语句(多用于存储过程)六、if-elseif-else语句(多用于存储过程)总结前言 在Mysql数据库中实现判断功能有很多方式,具体又分为函数和if语句形式,函数的好处是可以作为sql的一…...
在Vue3这样子写页面更快更高效
前言 在开发管理后台过程中,一定会遇到不少了增删改查页面,而这些页面的逻辑大多都是相同的,如获取列表数据,分页,筛选功能这些基本功能。而不同的是呈现出来的数据项。还有一些操作按钮。 对于刚开始只有 1ÿ…...
做软件测试,如何才能实现月入20K?
听我的,测试想要月入20k。 首先你要去大厂,不在大厂起码也得在一线城市,北上广深。 二线城市的话成都、杭州最好。 不然的话想都不要想。 像我之前整理过成都的公司,除了字节跳动、蚂蚁金服、滴滴、美团、京东、平安、字节跳动…...
mysql last lesson
1:创建用户 create user zhang identified by 12345678;2:给用户授权,撤销授权, grant.......to revoke ....... 3:将数据库中的数据导出 C:\Windows\system32>mysqldump bjpowernode>C:\bjpowernode.sql -uroot -p12345678 4&#…...
一、Redis入门概述(是什么,能干嘛,去哪下,怎么玩)
一. redis是什么? Redis:REmote Dictionary Server(远程字典服务器)官方解释: Remote Dictionary Server(远程字典服务)是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高性能的Key-Value数据库提供了丰富的数据结构ÿ…...
(六十二)当我们在SQL里进行分组的时候,如何才能使用索引?
今天我们接着上次的内容来谈谈在SQL语句里假设你要是用到了group by分组语句的话是否可以用上索引,因为大家都知道,有时候我们会想要做一个group by把数据分组接着用count sum之类的聚合函数做一个聚合统计。 那假设你要是走一个类似select count(*) fr…...
python字符串练习
python字符串练习 1.去掉字符串中所有的空格 s This is a demo print(s.replace( , )) 2.获取字符串中数字的个数 data input("请输入一些字符串:") a 0 for i in data:if i.isdigit():a a 1 print("数字个数:", a)3.将字母全部转换为…...
Java-封装、继承、多态
封装 访问控制权限又成为“封装”,是面向对象三大特征中的一种。核心是,只对需要的类可见。 继承 继承是所有OOP(Object Oriented Programming)语言和Java语言都不可或缺的一部分。 只要创建一个类,就隐式继承自Obje…...
问题三十二:离散二维傅立叶变换(Discrete Fourier Transformation)
为了将灰度图像表示为频谱图,我们需要进行以下步骤: 加载图像并将其转换为灰度图像。对图像进行二维离散傅里叶变换。将变换结果表示为幅度谱和相位谱。可以对幅度谱和相位谱进行可视化,以查看频率分布。对幅度谱和相位谱进行逆变换…...
恢复谷歌翻译的究极方法
谷歌翻译为什么会失效,我想各位在去年11月的时候就知道了。可是要怎么解决失效的问题呢?之前我们是通过手动Ping可以连接的ip各位可能觉得麻烦,心里觉得什么档次还要我手动ping就没有可以自动扫描的吗?还别说真的有我最近发现一个…...
string函数以及string常用接口
本文介绍的是C关键字string中一些重要用法,以及各种字符串序列的处理操作 ——飘飘何所似,天地一沙鸥 文章目录前言一、string(字符串类)二、string类对象的容量操作2.1 size/length2.2 capacity2.3 empty/clear2.4 resize/reser…...
分享一篇由C语言实现《数据结构》无头无循环单链表
三月,你好,各位csdn uu们好 文章目录前言一、何为单链表二、单链表基本操作(增,删,查,改,销毁,遍历)1.查找与修改、销毁与遍历2.链表插入与删除操作三、单链表 VS 顺序表…...
C盘爆满?两个超简单的解决办法
我们在使用电脑的过程中,经常容易出现C盘爆红,反而其他盘还有大量可用空间的情况。为什么会这样呢?其实主要就两种原因:一是电脑使用习惯不好,不管什么软件都默认安装在C盘,大文件又喜欢放在桌面࿰…...
ThreadLocal
ThreadLocalThreadLocalMapgetsetremove内存泄漏key用强/弱引用entry继承了弱引用ThreadLocal 一个对象的所有线程会共享其全局变量——>线程不安全 解决方式: 方式一:同步机制,加锁(时间换空间) 方式二:…...
Java基础:JDK7-时间Date
JDK7以前时间相关类 1.Date Date date new Date(); , sout(date)得到的是现在所处位置的时间 Date date new Date(0L); , sout(date)得到的是时间原点也就是1970年1月1日08:00(东八区). date.setTime(1000L); sout(date)得到的是时间原点后一秒钟的时间 long time date.g…...
什么是IP地址?
IP协议中还有一个非常重要的内容,那就是给因特网上的每台计算机和其它设备都规定了一种地址,叫做“IP 地址”。由于有这种地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。…...
4年经验之谈,什么是接口测试?怎样做接口测试?
一、什么是接口?【文末学习资源分享】赶紧嫖!冲!!!! 接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过…...
普通指针扫盲
一、什么是指针 C语言里,变量存放在内存中,而内存其实就是一组有序字节组成的数组,每个字节有唯一的内存地址。 CPU 通过内存寻址对存储在内存中的某个指定数据对象的地址进行定位。这里,数据对象是指存储在内存 中的一个指定数据…...
深度学习笔记:神经网络权重确定初始值方法
神经网络权重不可为相同的值,比如都为0,因为如果这样网络正向传播输出和反向传播结果对于各权重都完全一样,导致设置多个权重和设一个权重毫无区别。我们需要使用随机数作为网络权重 实验程序 在以下实验中,我们使用5层神经网络…...
关于 python 的异常使用说明 (python 的文件和异常)
文章目录异常1. 处理异常 ZeroDivisionError 异常2. 使用 try-except 代码块3. 使用异常避免崩溃4. else 代码块5. 处理 FileNotFoundError 异常6. 分析文本7. 失败时一声不吭异常 pyhong 使用被异常成为异常的特殊对象来管理程序执行期间发生的错误。 每当发生让 python 不知所…...
Spark RDD持久化
RDD Cache缓存 RDD通过Cache或者Persist方法将前面的计算结果缓存,默认情况下会把数据以序列化的形式缓存在JVM的堆内存中。但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD将会被缓存在计算节点的内存中,并供…...
贵州建设监理协会网站/公司网站建设步骤
MySql noinstall-5.1.xx-win32 配置(原创)1、解压mysql-noinstall-5.1.xx-win32.zip 到你喜欢的目录,例如:d:\php\mysql2、在根目录d:\php\mysql中有五个配置信息文件:my-small.ini (内存 < 64M)my-medium.ini (内存 128M )my-large.ini (内存 512M)m…...
wordpress命令安装目录结构/今日最新财经新闻
相信很多的码友刚接触统计分析模块功能时都会遇到很多的问题,本人主要遇到的问题是数据封装方式不对,统计分析模块跟其他方式不一样的是,我们不能单纯的返回列表,比如说我们要统计两个学生的4年里成绩变化,我们不能分别…...
龙江做网站/网站都有哪些
作者:张楷露、张琪 封面:自己想吧一、基本思想的异同共同点从二者表达的含义上看,主成分分析法和因子分析法都寻求少数的几个变量(或因子)来综合反映全部变量(或因子)的大部分信息,变量虽然较原始变量少,但所包含的信…...
wordpress logo图片/上海有名网站建站开发公司
第一份资料:Kafka实战笔记 Kafka入门为什么选择KafkaKarka的安装、管理和配置 Kafka的集群第一个Kafka程序 afka的生产者 Kafka的消费者深入理解Kafka可靠的数据传递 Spring和Kalka的整合Sprinboot和Kafka的整合Kafka实战之削峰填谷数据管道和流式处理(了解即可) K…...
阿帕奇网站搭建/百度旗下产品
简介 提供一种方便、简捷、易学、易用的地图矢量、栅格数据格式\编码\坐标系转换工具。软件无需安装,硬件要求低、功能实用简洁。可以让没有任何GIS和测绘的背景的人也可以快速完成GIS数据转换和数据准备工作。从而避免在做数据转换这类最基本而简单的GIS操作时&…...
php是做网站的吗/免费建站模板
第1关:python数据库编程之创建数据库 本关任务:使用 pymysql 创建一个名为 mydb 的数据库。 import pymysql"""需求:创建一个名为 mydb 的数据库 """ if __name__ == __main__:# **********begin********** ## 获取连接conn = pymysql.conn…...