0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NVIC_CoreReset内核复位

5RJg_mcuworld 来源:YXQ 2019-07-31 16:07 次阅读

CM3 允许由软件触发复位序列,用于特殊的调试或维护目的。在CM3中,有两种方法可以执行自我复位。第一种方法,是通过置位 NVIC 中应用程序中断与复位控制寄存器(AIRCR)的VECTRESET 位(位偏移:0)。

这种复位的作用范围覆盖了整个CM3处理器中,除了调试逻辑之外的所有角落,但是它不会影响到 CM3 处理器外部的任何电路,所以单片机上的各片上外设和其它电路都不受影响。

C语言版函数:

void NVIC_CoreReset(void){__DSB();  //置位VECTRESET  SCB->AIRCR  = ((0x5FA << SCB_AIRCR_VECTKEY_Pos)      |                 (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |SCB_AIRCR_VECTRESET_Msk);  __DSB();  while(1);}

汇编版函数:

__asm void NVIC_CoreReset_a(void){  LDR R0, =0xE000ED0C  LDR R1, =0x05FA0001  //置位VECTRESET  STR R1, [R0]deadloop_Core  B deadloop_Core}

内核主要注意:

SCB_AIRCR_VECTRESET_Msk

LDR R1, =0x05FA0001

它是和系统复位唯一的区别。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136646
  • 复位
    +关注

    关注

    0

    文章

    171

    浏览量

    24211

原文标题:STM32复位来源,以及系统和内核复位区别

文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    复位电路的设计问题

    前言 最近看advanced fpga 以及fpga设计实战演练中有讲到复位电路的设计,才知道复位电路有这么多的门道,而不是简单的外界信号输入系统复位。 流程: 1.同步复位: 优点:
    的头像 发表于 11-15 11:13 152次阅读
    <b class='flag-5'>复位</b>电路的设计问题

    【GD32 MCU 入门教程】GD32 MCU 常见外设介绍(3)NVIC 介绍

    )。NVIC内核相辅相成,共同完成对中断的响应。本章将介绍中断的优先级设置、如何定义中断函数名称、中断向量如何偏移。有关NVIC的更多知识,请见《ARM Core
    的头像 发表于 08-12 10:02 492次阅读
    【GD32 MCU 入门教程】GD32 MCU 常见外设介绍(3)<b class='flag-5'>NVIC</b> 介绍

    STM32复位电路用复位芯片和阻容复位电路区别

    STM32是一款广泛使用的微控制器,其复位电路设计对于系统的稳定性和可靠性至关重要。本文将详细介绍STM32复位电路中使用复位芯片和阻容复位电路的区别,以及各自的优缺点和应用场景。 引
    的头像 发表于 08-06 10:26 1377次阅读

    FPGA同步复位和异步复位

    FPGA(Field-Programmable Gate Array,现场可编程门阵列)中的复位操作是设计过程中不可或缺的一环,它负责将电路恢复到初始状态,以确保系统的正确启动和稳定运行。在FPGA设计中,复位方式主要分为同步复位
    的头像 发表于 07-17 11:12 1501次阅读

    在IAR 7.3调试STM32 usb只要配置USB的中断NVIC_Init,在debug的时就停止不了内核,也复位不了的原因?

    在IAR 7.3调试STM32 usb 只要配置USB的中断NVIC_Init,在debug的时就停止不了内核,也复位不了。用的是STLINKV1V2 也是一样 是不是在配置NVIC
    发表于 05-16 06:51

    STM32如何用HAL库进行内核复位

    STM32如何用HAL库进行内核复位 普通的系统复位函数如下: / ** 简短的系统重置 详细信息发起系统重置请求以重置MCU。 * / __STATIC_INLINE void
    发表于 04-11 06:49

    STM32 HAL_NVIC_SystemReset()死机的原因?

    一直使用HAL_NVIC_SystemReset()进行系统复位,最近程序升级,在执行到HAL_NVIC_SystemReset()时系统死机,做复位键,断掉电源等动作都无效一直是死机
    发表于 04-09 07:41

    STM32F303调用NVIC_SystemReset函数软件复位失败的原因?怎么解决?

    在对APP进行升级完成后希望自动软件复位重启,但调用NVIC_SystemReset函数后一直在for循环。这里的软件复位原理不确定是否是内部控制NRST管脚复位。若是,则可能因外部电
    发表于 04-02 06:52

    不会RTOS,是因为你没搞懂NVIC

    一、到底什么是NVICNVIC(NestedVectoredInterruptController)中文翻译为:嵌套中断向量控制器。NVIC属于内核级别的外设单元,用来管理CPU的中
    的头像 发表于 03-31 08:09 1052次阅读
    不会RTOS,是因为你没搞懂<b class='flag-5'>NVIC</b>

    STM32U575RIT6Q开发过程调用NVIC_SystemReset()程序就跑飞死掉,是什么原因导致的?

    如题所示,本意是在程序中调用NVIC_SystemReset()让程序复位从头开始运行,但一调用NVIC_SystemReset()程序就跑飞死掉,即使程序使能独立看门狗,也不能复位
    发表于 03-11 08:33

    MCU复位RAM会保持吗,如何实现复位时变量数据保持

    在使用MCU时,通常大家默认MCU复位时RAM会被复位清零,那实际MCU复位时RAM是什么状态?如何让mcu复位时RAM保持不变呢?
    的头像 发表于 03-01 09:32 2465次阅读
    MCU<b class='flag-5'>复位</b>RAM会保持吗,如何实现<b class='flag-5'>复位</b>时变量数据保持

    如何排查GD32 MCU复位是由哪个复位源导致的?

    上期为大家讲解了GD32 MCU复位包括电源复位和系统复位,其中系统复位还包括独立看门狗复位内核
    的头像 发表于 02-03 09:46 1714次阅读
    如何排查GD32 MCU<b class='flag-5'>复位</b>是由哪个<b class='flag-5'>复位</b>源导致的?

    GD32 MCU电源复位和系统复位有什么区别

    GD32 MCU的复位分为电源复位和系统复位,电源复位又称为冷复位,相较于系统复位,上电
    的头像 发表于 02-02 09:37 1491次阅读
    GD32 MCU电源<b class='flag-5'>复位</b>和系统<b class='flag-5'>复位</b>有什么区别

    同步复位和异步复位到底孰优孰劣呢?

    同步复位和异步复位到底孰优孰劣呢? 同步复位和异步复位是两种不同的复位方式,它们各自有优势和劣势,下面将详细介绍这两种
    的头像 发表于 01-16 16:25 1736次阅读

    复位电路的复位条件和复位过程

    电源监测芯片复位电路:这是最常见的复位电路类型,使用专用的电源监测芯片来监测电源电压,并在电压低于或高于预设阈值时触发复位信号。
    的头像 发表于 01-16 16:04 1228次阅读