华大MCU如何实现软件复位
华大MCU如何实现软件复位
产品价格:¥3000.00(人民币)
  • 供应数量:1000
  • 发货地:辽宁-沈阳市
  • 最小起订量:1件
  • 免费会员
    会员级别:免费会员
    认证类型:企业认证
    企业证件:通过认证

    商铺名称:沈阳芯硕科技有限公司

    联系人:沈阳芯硕科技-024-85718900()

    联系手机:

    固定电话:

    企业邮箱:164973950@qq.com

    联系地址:

    邮编:

    联系我时,请说是在电子快手网上看到的,谢谢!

    商品详情

      产品在设计中某些状态下需要MCU进行复位,华大MCU包含了7个复位信号来源,每个复位信号都可以让 CPU 重新运行,绝大多数寄存器会被复位到复位值,程序计数器 PC 会被复位指向 00000000

      POR/BOR 复位(VCC 域及 Vcore 域)

      ●外部 Reset PAD 复位

      WDT 复位

      PCA 复位

      LVD 复位

      Cortex-M0+ SYSRESETREQ 软件复位

      Cortex-M0+ LOCKUP 硬件复位

      华大MCU每个复位源由相应的复位标志进行指示。复位标志均由硬件置位,需要用户软件清零。芯片复位时,如果查询到 Reset_flag. POR15V Reset_flag. POR5V 1 则为上电复位。上电复位时用户程序应当将寄存器 Reset_flag 清零,则下一次复位时可通过 Reset_flag的相关比特判断复位来源。

      这些复位源中Cortex-M0+ SYSRESETREQ 软件复位为主动复位,工程师可以在程序中根据自己的需要进行操作,其它的复位为被动复位,当运行的条件满足时会自动复位。下面介绍下华大MCU如何实现软件复位。

      软件复位的函数包涵在core_cm0plus.h头文件中,形式为:

        #define NVIC_SystemReset            __NVIC_SystemReset

      函数的原型为:

      __STATIC_INLINE void __NVIC_SystemReset(void)

      {

        __DSB();                                                          /* Ensure all outstanding memory accesses included

                                                                             buffered write are completed before reset */

        SCB->AIRCR  = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |

                       SCB_AIRCR_SYSRESETREQ_Msk);

        __DSB();                                                          /* Ensure completion of memory access */

       

        for(;;)                                                           /* wait until reset */

        {

          __NOP();

        }

      }

      工程建立好后,工程师在使用的时候直接调用就可以,以上就是华大MCU如何实现软件复位操作流程。

    在线询盘/留言
  • 0571-87774297