首页 供应 求购 产品 公司 登陆

华大MCU实现软件复位

  • 发布时间:2021-08-31 10:03:02
    报价:面议
    地址:辽宁,沈阳,辽宁省沈阳市铁西区建工西路5号财富星座B座
    公司:沈阳芯硕科技有限公司
    手机:13802923731
    电话:024-85718900
    用户等级:普通会员 已认证

    产品在设计中某些状态下需要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如何实现软件复位操作流程。

    华大MCU实现软件复位

    提醒:联系时请说明是从志趣网看到的。

免责申明:志趣网所展示的信息由用户自行提供,其真实性、合法性、准确性由信息发布人负责。使用本网站的所有用户须接受并遵守法律法规。志趣网不提供任何保证,并不承担任何法律责任。 志趣网建议您交易小心谨慎。

©志趣网