NVIC_SystemReset [问题点数:20分]

Bbs1
本版专家分:0
结帖率 0%
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs2
本版专家分:110
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
NVIC_SystemReset使用及系统复位
NVIC_SystemReset: STM32中NVIC_SystemReset()函数的作用?什么时候用? STM32软件复位有两种方式 (1)方式一: NVIC_SystemReset() 函数用来复位STM32. 注意1:从SYSRESETREQ 被置为有效,到复位发生器执行复位命令,往往会有一个延时。在此延时期间, 处理器仍然可以响应中断请求。但我们的本意往往是要让此次执行到此为止,不要再...
系统复位和内核复位
某些系统允许复位,但对外设又有特殊要求:某一个IO状态不能因为复位而改变,某一个定时器计数器不能改变等。   例子:我一个A系统通过一个IO控制另一个B系统的电源,而这个IO置高时才开启B系统的电源。 正常工作过程中,B系统只有收到A系统关机命令任务才会进行关机(也就是说不能掉电关机),而A系统在工作过程中有复位的需求。   这个时候如果我使用常规的引脚复位,就会使I
stm32f070 软件复位
NVIC_SystemReset() 我用这个可以实现复位,使用的是STM32F070。 这个函数在core_cm0.h中,inline函数/** \brief  System Reset     The function initiates a system reset request to reset the MCU. */ __STATIC_INLINE void NVIC_Sy
STM32程序软件复位
__set_FAULTMASK(1); //STM32程序软件复位 NVIC_SystemReset();
蓝牙nrf51822空中升级
原理简介: 对于单片机做的产品,要实现在线升级,单片机内部一般是两段代码,一个是bootloader程序,一个是用户app程序,bootloader程序主要就是实现app升级的程序,它是单片机上电后首次运行的程序,app程序就是实现产品功能的程序。 对于nRF51822来说,稍微有点特殊,但是本质原理也是一样的,nRF51822芯片内部有段SoftDevice的程序,它是芯片上电后首次运行的程
STM软件复位
记录下软件复位两个函数 __set_FAULTMASK(1); NVIC_SystemReset(); 我的STM32是F103系列,即CPU内核为Cortex M3,这两个函数在core_cm3.h里面都有定义, __set_FAULTMASK(1);是关闭所有中断的意思,目的是在执行NVIC_SystemReset();复位函数过程中不被中断所打断。 两个函数执行后系统复位
nrf51822问题【KEILL仿真设置里找不到烧录固件】【BLEevents和system】【nrfgo studio找不到jlinkarm.dll】
SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机、32位ARM Cortex-M0处理器、128kB Flash存储器、以及丰富的数字接口。SYD8801片上集成了Balun无需阻抗匹配网络、高效率DCDC降压转换器,适合用于可穿戴、物联网设备等。具体可咨询:http://www.sydtek.com/ 1.在KEILL仿真设置里找不到烧录固件,就是在下图中找...
关于NVIC使用以及M0和M3的异同
前言:目标 1NVIC的示意图和核心点介绍 2 可嵌套向量中断控制器NVIC如何使用 3 M0和M3的操作有什么异同 4 中断向量表的位置 5 系统复位时(或者不设置中断时),初始状态是什么 6 可嵌套的合理解释   NVIC核心点介绍          NVIC可以看做是CPU的得力干将,负责了CPU所有的外设中断,而内部的异常中断则是有SCB系统控制块来管理
单片机的复位方式
  /*****************************************分析 一***********************************************/      一、高电平复位      复位电路的工作原理 在书本上有介绍,51单片机要复位只需要在第9引脚接个高电平持续2us就可以实现,那这个过程是如何实现的呢?在单片机系统中,系统上电启动的时候复位...
关于STM32的NVIC设置问题(转载、自己见解)
1、SCB->VTOR设置问题(转载):对程序:void MY_NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset){SCB->VTOR = NVIC_VectTab|(Offset & (u32)0x1FFFFF80);//中断向量在RAM中0x20000000,即VTOR第29位为1;中断向量在Flash中0x08000000}...
LiteOS学习第五篇——任务切换
系统有两个任务切换函数 VOID osSchedule(VOID) VOID LOS_Schedule(VOID) 两个函数最终切换调用的是用汇编编写的osTaskSchedule()函数,在移植的时候要根据不同的内核来修改 在COTEX-M3函数内核中用的是pendsv中断来切换任务。 osTaskSchedule     LDR     R0, =OS_NV
STM32程序跳转需要注意的问题
Note:   keil生成的.axf或者.elf都是可以执行的镜像文件。 IAP User Program 需要注意的问题 要设置好好中断向量的问题,假设User Program 开始地址是(0x08008000),那么中断向量就必须设在在0x08008000处,中断向量要设置program的开始的位置。 User Program到IAP主要是要设置好中断向量,跳转前要注意设置中断
nRF52832 复位相关
好吧,丑大了,调试中断出问题,导致MCU一直busy,SW调试口无法烧程序。 复位管脚接了,但是一个宏没定义,导致复位不起作用。在工程中定义 CONFIG_GPIO_AS_PINRESET system_nrf52.c 160行开始,165与167的“21”为复位管脚号,PSELRESET寄存器中的值必需一样。CONFIG_NFCT_PINS_AS_GPIOS 将NFC管脚作为普通管脚。
stm32中关于NVIC_SetVectorTable函数使用的疑惑与理解
先描述下这几天碰到的一个奇怪的问题: 一个基于stm32的工程中使用到了IAP编程,其中boot空间预留长度为0x6100,实际boot的bin文件大小为21.1KB,具体为21633Byte.我在最开始调试时对于IAP编程的app程序直接下载到单片机中,程序工作一切正常,但是在通过boot将app更新到单片机中后程序可以进入到app中,但是程序工作不正常。 最后经过查找原因,最后在代码注释中
MPU6050配置中断读取数据
MPU6050相关寄存器写满数据后产生数据中断,主机检测外部中断用于读取数据,如此节省CPU资源   本文转移到 https://shaynerain.com/mpu6050配置中断读取数据/             作者:Shaynerain 术业有专攻,闻道有先后 欢迎大神吐槽    ...
看门狗不断复位
最近遇到一个问题,在zynq上跑起linux 4.4的kernel出现如下状况: 板子出现死机,在串口上无法敲命令,最后60s后被watchdog 复位。这个状况出现频率不固定。 /*****************************************************************************/ 请教了一个kernel大神,初步怀疑是deadlock。...
Nordic51822 和 52832 的 APP_ERROR_CHECK(err_code)程序错误检查
Nordic51822 和 52832 的 APP_ERROR_CHECK(err_code)程序错误检查
芯片软件复位不成功
之前做项目,发现芯片软件复位不成功,同一个架构下的CPU,其它项目上的复位程序能成功,且调试程序时也不能复位成功(成功的表现是,寄存器值能恢复成默认值) 后来发现是复位电路由问题,芯片内部复位电路如图,软件复位时需要时下面的MOS管导通,使NRST引脚电压变低。 外接的电路是复位芯片(看门狗)直接连接NRST引脚,NRST电压相当于是两个MOS管分压得到的,此时,软件复位了,软件停止喂外部看门
MCU中的软复位
同事Jicheng在其博客 http://blog.chinaaet.com/detail/35920 介绍了软复位的原理。我再自己整理一遍以加深印象。软复位的函数如下(用在IAR或者Keil里都可以),核心是对AIRCR寄存器进行操作。void software_reset(void) { __DSB();
nRF51822调试时遇到的各种“奇葩”问题
前言:本人之前话说是做嵌入式开发的,但主要工作是做C++开发的,因为我们的嵌入式的复杂逻辑都是用C++写的,C++代码在PC端跑,嵌入式板的代码调试都是盲调或者通过串口输出进行调试,嵌入式的代码从没进行过断点的调试,因为整个公司的不用,不用的原因很简单,因为基本的部分已经写好并且蛮成熟的了。因此本人对嵌入式的断点调试经验空白可想而知。现切入到另外一款单片机进行开发,调试时遇到的一些“奇葩”问题,本
STM32L4xx下bootloader重设中断向量表的一个问题
问题开发bootloader中,在跳转到应用程序时,重设中断向量表static __asm void asmJump(unsigned int addr){ /* goto applicant */ LDR SP,[R0] ADD R0,#0x4 LDR R1,[R0] BX R1 }static void stm32l431GotoApplicant(uns
STM32 内核复位 与 系统复位 区别及程序实现
1 写在前面 某些系统允许复位,但对外设又有特殊要求:某一个IO状态不能因为复位而改变,某一个定时器计数器不能改变等。 例子:A系统通过一个IO控制B系统的电源,而这个IO置高时才开启B系统的电源。 正常工作过程中,B系统只有收到A系统关机命令任务才会进行关机(也就是说不能掉电关机),而A系统在工作过程中有复位的需求。 这个时候如果使用常规的复位方式,就会复位IO,不符合要求。如果有一种方...
STM32F10xxx支持三种复位
STM32F10xxx支持三种复位形式,分别为系统复位、上电复位和备份区域复位。 一、系统复位 除了时钟控制器的RCC_CSR寄存器中的复位标志位和备份区域中的寄存器(见图4)以外,系统 复位将复位所有寄存器至它们的复位状态。 当发生以下任一事件时,产生一个系统复位: 1. NRST引脚上的低电平(外部复位)  2.  窗口看门狗计数终止(WWDG复位)  3.  独立看门狗计数终止
STM32出现HardFault_Handler 原因及处理方法整理
STM32出现HardFault_Handler故障的原因主要有两个方面: 1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码,遇到了需要慢慢排查。 2、堆栈溢出。增加堆栈的大小。   出现问题时排查的方法: 1、发生异常之后可首先查看LR寄存器中的值,确定当前使用堆栈为MSP或PSP,然后找到相应堆栈的指针,并在内存中查看相应堆栈里的内容。由于异常发生时,内
STM32 关于复位类型的判断及软件复位
STM32 关于复位类型的判断及软件复位 代码编写  2009-04-01 16:33  加入收藏  转发分享  人人网  开心网  新浪微博  搜狐博客  百度收藏  谷歌收藏  qq书签  豆瓣  淘江湖  Facebook  Twitter  Digg  Yahoo!Bookmarks 要
单片机软件复位和硬件复位的实现和个人总结的区别
微处理器复位方法:用硬件引脚RESET的复位方法;用看门狗的复位方法;自己程序控制的复位方法(本文方法,叫软件复位)。软件复位实现方法首先声明一个函数指针,指向复位后要开始执行指令的位置:void (*app_start)(void) = 0x0000;可以根据具体微处理器复位后的位置,修改后边的地址。之后,在自己的程序中想复位的地方调用app_start(); 也就是跳到0x0000位置执行指...
STM32外部中断无法触发的问题
很多教程在讲解外部中断时,基本上都将接受外部中断的GPIO设置为浮空输入,即GPIO_Mode_IN_FLOATING,这样的话对应的GPIO会是低电平状态,如果外部不加上拉电阻的话,STM32无法响应外部的下降沿中断。为了简化硬件设计(不加外部上拉电阻),建议设置对应的GPIO为外部上拉输入,即GPIO_Mode_IPU,这样GPIO默认电平为高,STM32就可以正常响应外部的下降沿中断了。
解决stm32进入HardFault_Handler的定位办法
1、首先在HardFault_Handler的while(1)处打上断点。 2、等待代码运行到此,这时查看寄存器LR,在左边一个是工程,一个是寄存器。     上面的LR是我正常时copy的,一般在进入hardfault时,会变成下图的值,这时就可以知道该看那个寄存器的值,当时我那里是0xFFFFFFFD,所以是看PSP的地址。 3、找到该看的地址后然后如下图打开内存,
强连通分量及缩点tarjan算法解析
强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Time, DFN[N], Low[N]; DFN[i]表示 遍历到 i 点时是第几次dfs Low[u] 表示 以u点为父节点的 子树 能连接到 [栈中] 最上端的点   int
同是流行MVC框架,比较Strtus2和SpringMVC的区别
其实用什么技术,这一点真的没有硬性的要求,有人觉得struts好用,有人就觉得springMVC先进。总的来说,实现的功能都是大体一致的。有时候架构师一直使用struts,为了项目的稳定,就一直沿用;而一些先进分子总是喜欢在项目中常识新的技术,也促进了这项技术的发展。单就struts和springMVC来说,都是controller层的框架,作用都是接收request请求,中间调用业务逻辑代码,最后返回reponse响应,不用刻意远离SSH,也不用一味追求Spring MVC。总之,合适的就是最好的。
linux上安装Docker(非常简单的安装方法)
最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗! Docker的三大核心概念:镜像、容器、仓库 镜像:类似虚拟机的镜像、用俗话说就是安装文件。 容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例, 可以将其启动、开始、停止、删除、而这些容器都是相互隔离、互不可见的。 仓库:类似代码仓库,是Docker集中存放镜像文件的场所。 简单介绍一
使用NASM和CL(或LINK)写HelloWorld
原文地址:http://www.tech-juice.org/2011/02/26/assembler-tutorial-hello-world-with-nasm-and-cl-exe-or-link-exe/ 前言 ... 编译汇编代码 我们来编译链接这个名为helloworld.asm的汇编代码 ; This is a Win32 console prog
【小程序】微信小程序开发实践
帐号相关流程注册范围 企业 政府 媒体 其他组织换句话讲就是不让个人开发者注册。 :)填写企业信息不能使用和之前的公众号账户相同的邮箱,也就是说小程序是和微信公众号一个层级的。填写公司机构信息,对公账户信息绑定管理员微信企业认证公司对公账户对微信进行打款 账户自动验证后,自动认证通过,并将认证资金退回公司对公账户,费用在1元内随机小程序发布流程开发实践这次的demo项目为农历和公历的转换器,重在体验
Spring MVC 使用拦截器优雅地实现权限验证功能
在上一篇 SpringAOP 实现功能权限校验功能 中虽然用AOP通过抛异常,请求转发等勉强地实现了权限验证功能,但感觉不是那么完美,应该用拦截器来实现才是最佳的,因为拦截器就是用来拦截请求的,在请求层面进行权限验证是最好的时机。 假设下面的请求需要进行权限验证,在请求中通过参数params指定必须带有Helper.PARAM_FUNCTION_ID参数,这样拦截器通过判断是否带有该参数,如果...
搭建图片服务器《二》-linux安装nginx
nginx是个好东西,Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的。 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占
POJ 1279 Art Gallery 半平面交+求多边形核的面积
裸的:半平面交+求多边形核的面积 Art Gallery Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5735   Accepted: 2419 Description The art galleries of the ne
APP字体大小,不随系统的字体大小变化而变化的方法
从android4.0起系统设置的”显示“提供设置字体大小的选项。这个设置直接会影响到所有sp为单位的字体适配,所以很多app在设置了系统字体后瞬间变得面目全非。下面是解决方案 Resources res = getResources(); Configuration config=new Configuration(); config.setToDefaults(); res.update
JNI两种注册过程实战
JNI系列JNI两种注册过程实战深入理解JNI概述Android OS加载JNI Lib的方法有两种 - JNI_OnLoad(动态注册) - 如果JNI Lib实现中没有定义JNI_OnLoad,则dvm调用dvm ResolveNativeMethod进行动态解析(静态注册) 因此,当 java 通过 System.loadLibrary 加载完 JNI 动态库后,紧接着会调用 JNI_O
关于计算时间复杂度和空间复杂度
相信学习编程的同学,或多或少都接触到算法的时间复杂度和空间复杂度了,那我来讲讲怎么计算。        常用的算法的时间复杂度和空间复杂度 一,求解算法的时间复杂度,其具体步骤是:   ⑴ 找出算法中的基本语句;   算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。   ⑵ 计算基本语句的执行次数的数量级;   只需计算基本语句执行次数的数量级,这就意
jquery/js实现一个网页同时调用多个倒计时(最新的)
jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js //js2 var plugJs={     stamp:0,     tid:1,     stampnow:Date.parse(new Date())/1000,//统一开始时间戳     ...
腾讯视频解析接口
普通流视频(完整视频) http://vv.video.qq.com/geturl?vid=v00149uf4ir&otype=json 高清视频(分段视频) 1080P-fhd,超清-shd,高清-hd,标清-sd http://vv.video.qq.com/getinfo?vids=v00149uf4ir&otype=json&charge=0&defaultfmt=sh
J2EE常用的JAR及开源项目
J2EE常用的JAR及开源项目 activation~与javaMail有关的jar包,使用javaMail时应与mail.jar (mail.jar和activation.jar)一起加入到lib中去,具体负责mail的数据源和类型等。ApacheActiveMQ~Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的 JMS
psi-probe安装手记
作者:fbysssmsn:jameslastchina@hotmail.com  blog:blog.csdn.net/fbysss声明:本文由fbysss原创,转载请注明出处关键字:tomcat监控 probe一、简介psi-probe是lambdaprobe的一个分支版本,用于对Tomcat进行监控,比tomcat的manager强大很多。psi就是一个形如叉子的符号Ψ,希腊字母的第23个字母,用来代表fork。为啥需要分支呢,因为lambdaprobe已经多年没有更新(大致在2006年就停止发布新版本
系统字体大小设置
问题:     在项目中遇到需要修改字体大小的问题。当修改设置里面字体大小的时候,根据情况决定当前应用是否需要同步系统的字体大小。一般在需要完整显示字体的应用中有此需求。华为荣耀的手机桌面似乎就针对这个做了判断,不管系统字体修改成什么样,似乎都是一个默认值,反正我是没有用肉眼看到有什么改变。虽然有点固定,但是好歹也整成了可以完整显示应用名称了。 分析:     在设置中既然有该功能,
在ARM-linux上实现4G模块PPP拨号上网
搞了3、4天4G模块,从毫无头绪到可以ping通外网,着实不轻松。用的是一不知名品牌EC20, 技术支持很少,资料很乱,然后自己搜集资料,一步一步调试,才搞通。 环境: ubuntu12.04.02 gcc:arm-2009q3 主要步骤: 1、配置内核 menuconfig: 1)、USB驱动配置 Device Drivers---→ USB support---→ USB
【HTTP】Fiddler(一) - Fiddler简介
1.为什么是Fiddler? 抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下: a.Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存。 b.Wireshark是通用的
expat介绍文档翻译
原文地址:http://www.xml.com/pub/a/1999/09/expat/index.html 因为需要用,所以才翻译了这个文档。但总归赖于英语水平很有限,翻译出来的中文有可能会词不达意。 什么是expat? expat是一个库,用c实现的,用来解析XML文档。它是开源Mozilla工程的基本XML解析器,perl的XML::Parser以及其他开源的XML解析
文章热词 机器学习 机器学习课程 机器学习教程 深度学习视频教程 深度学习学习
相关热词 c# 投屏 c#好看的音乐控件 c# string 转码 c# iis配置 python教程+chm python教程百家号
我们是很有底线的