0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

NVIC_CoreReset內(nèi)核復(fù)位

5RJg_mcuworld ? 來(lái)源:YXQ ? 2019-07-31 16:07 ? 次閱讀

CM3 允許由軟件觸發(fā)復(fù)位序列,用于特殊的調(diào)試或維護(hù)目的。在CM3中,有兩種方法可以執(zhí)行自我復(fù)位。第一種方法,是通過(guò)置位 NVIC 中應(yīng)用程序中斷與復(fù)位控制寄存器(AIRCR)的VECTRESET 位(位偏移:0)。

這種復(fù)位的作用范圍覆蓋了整個(gè)CM3處理器中,除了調(diào)試邏輯之外的所有角落,但是它不會(huì)影響到 CM3 處理器外部的任何電路,所以單片機(jī)上的各片上外設(shè)和其它電路都不受影響。

C語(yǔ)言版函數(shù):

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);}

匯編版函數(shù):

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

內(nèi)核主要注意:

SCB_AIRCR_VECTRESET_Msk

LDR R1, =0x05FA0001

它是和系統(tǒng)復(fù)位唯一的區(qū)別。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7575

    瀏覽量

    134090
  • 復(fù)位
    +關(guān)注

    關(guān)注

    0

    文章

    166

    瀏覽量

    24124

原文標(biāo)題:STM32復(fù)位來(lái)源,以及系統(tǒng)和內(nèi)核復(fù)位區(qū)別

文章出處:【微信號(hào):mcuworld,微信公眾號(hào):嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【GD32 MCU 入門(mén)教程】GD32 MCU 常見(jiàn)外設(shè)介紹(3)NVIC 介紹

    )。NVIC內(nèi)核相輔相成,共同完成對(duì)中斷的響應(yīng)。本章將介紹中斷的優(yōu)先級(jí)設(shè)置、如何定義中斷函數(shù)名稱(chēng)、中斷向量如何偏移。有關(guān)NVIC的更多知識(shí),請(qǐng)見(jiàn)《ARM Core
    的頭像 發(fā)表于 08-12 10:02 ?217次閱讀
    【GD32 MCU 入門(mén)教程】GD32 MCU 常見(jiàn)外設(shè)介紹(3)<b class='flag-5'>NVIC</b> 介紹

    STM32復(fù)位電路用復(fù)位芯片和阻容復(fù)位電路區(qū)別

    STM32是一款廣泛使用的微控制器,其復(fù)位電路設(shè)計(jì)對(duì)于系統(tǒng)的穩(wěn)定性和可靠性至關(guān)重要。本文將詳細(xì)介紹STM32復(fù)位電路中使用復(fù)位芯片和阻容復(fù)位電路的區(qū)別,以及各自的優(yōu)缺點(diǎn)和應(yīng)用場(chǎng)景。 引
    的頭像 發(fā)表于 08-06 10:26 ?433次閱讀

    FPGA同步復(fù)位和異步復(fù)位

    FPGA(Field-Programmable Gate Array,現(xiàn)場(chǎng)可編程門(mén)陣列)中的復(fù)位操作是設(shè)計(jì)過(guò)程中不可或缺的一環(huán),它負(fù)責(zé)將電路恢復(fù)到初始狀態(tài),以確保系統(tǒng)的正確啟動(dòng)和穩(wěn)定運(yùn)行。在FPGA設(shè)計(jì)中,復(fù)位方式主要分為同步復(fù)位
    的頭像 發(fā)表于 07-17 11:12 ?696次閱讀

    在IAR 7.3調(diào)試STM32 usb只要配置USB的中斷NVIC_Init,在debug的時(shí)就停止不了內(nèi)核,也復(fù)位不了的原因?

    在IAR 7.3調(diào)試STM32 usb 只要配置USB的中斷NVIC_Init,在debug的時(shí)就停止不了內(nèi)核,也復(fù)位不了。用的是STLINKV1V2 也是一樣 是不是在配置NVIC
    發(fā)表于 05-16 06:51

    STM32如何用HAL庫(kù)進(jìn)行內(nèi)核復(fù)位?

    STM32如何用HAL庫(kù)進(jìn)行內(nèi)核復(fù)位 普通的系統(tǒng)復(fù)位函數(shù)如下: / ** 簡(jiǎn)短的系統(tǒng)重置 詳細(xì)信息發(fā)起系統(tǒng)重置請(qǐng)求以重置MCU。 * / __STATIC_INLINE void
    發(fā)表于 04-11 06:49

    STM32 HAL_NVIC_SystemReset()死機(jī)的原因?

    一直使用HAL_NVIC_SystemReset()進(jìn)行系統(tǒng)復(fù)位,最近程序升級(jí),在執(zhí)行到HAL_NVIC_SystemReset()時(shí)系統(tǒng)死機(jī),做復(fù)位鍵,斷掉電源等動(dòng)作都無(wú)效一直是死機(jī)
    發(fā)表于 04-09 07:41

    STM32F303調(diào)用NVIC_SystemReset函數(shù)軟件復(fù)位失敗的原因?怎么解決?

    在對(duì)APP進(jìn)行升級(jí)完成后希望自動(dòng)軟件復(fù)位重啟,但調(diào)用NVIC_SystemReset函數(shù)后一直在for循環(huán)。這里的軟件復(fù)位原理不確定是否是內(nèi)部控制NRST管腳復(fù)位。若是,則可能因外部電
    發(fā)表于 04-02 06:52

    不會(huì)RTOS,是因?yàn)槟銢](méi)搞懂NVIC

    一、到底什么是NVIC?NVIC(NestedVectoredInterruptController)中文翻譯為:嵌套中斷向量控制器。NVIC屬于內(nèi)核級(jí)別的外設(shè)單元,用來(lái)管理CPU的中
    的頭像 發(fā)表于 03-31 08:09 ?718次閱讀
    不會(huì)RTOS,是因?yàn)槟銢](méi)搞懂<b class='flag-5'>NVIC</b>

    如何排查GD32 MCU復(fù)位是由哪個(gè)復(fù)位源導(dǎo)致的?

    上期為大家講解了GD32 MCU復(fù)位包括電源復(fù)位和系統(tǒng)復(fù)位,其中系統(tǒng)復(fù)位還包括獨(dú)立看門(mén)狗復(fù)位內(nèi)核
    的頭像 發(fā)表于 02-03 09:46 ?1484次閱讀
    如何排查GD32 MCU<b class='flag-5'>復(fù)位</b>是由哪個(gè)<b class='flag-5'>復(fù)位</b>源導(dǎo)致的?

    復(fù)位電路的復(fù)位條件和復(fù)位過(guò)程

    電源監(jiān)測(cè)芯片復(fù)位電路:這是最常見(jiàn)的復(fù)位電路類(lèi)型,使用專(zhuān)用的電源監(jiān)測(cè)芯片來(lái)監(jiān)測(cè)電源電壓,并在電壓低于或高于預(yù)設(shè)閾值時(shí)觸發(fā)復(fù)位信號(hào)。
    的頭像 發(fā)表于 01-16 16:04 ?1023次閱讀

    Cortex-M內(nèi)核的軟件復(fù)位方式

    這里只討論內(nèi)核的軟件復(fù)位方式。像STM32的備份域復(fù)位里面也有軟件復(fù)位,則不在本文討論范圍。額外提一句,上電復(fù)位是完整
    的頭像 發(fā)表于 12-06 16:18 ?1747次閱讀
    Cortex-M<b class='flag-5'>內(nèi)核</b>的軟件<b class='flag-5'>復(fù)位</b>方式

    單片機(jī)的NVIC與EXTI中斷詳解

    NVIC的全稱(chēng)是Nested vectoredinterrupt controller,即嵌套向量中斷控制器。控制著整個(gè)芯片中斷相關(guān)的功能,通過(guò)對(duì)NVIC寄存器進(jìn)行配置可以實(shí)現(xiàn)對(duì)內(nèi)核和片上外設(shè)的中斷
    的頭像 發(fā)表于 11-01 12:35 ?4372次閱讀
    單片機(jī)的<b class='flag-5'>NVIC</b>與EXTI中斷詳解

    RC復(fù)位電路中R如何影響芯片復(fù)位

    RC復(fù)位電路中R如何影響芯片復(fù)位? RC復(fù)位電路是常見(jiàn)的一種復(fù)位電路,它通過(guò)串聯(lián)一個(gè)電阻和一個(gè)電容元件來(lái)實(shí)現(xiàn)對(duì)芯片的復(fù)位功能。在RC電路中,
    的頭像 發(fā)表于 10-25 11:07 ?1074次閱讀

    中穎M0+內(nèi)核芯片軟件模擬內(nèi)核復(fù)位的方法

    中穎M0+內(nèi)核芯片軟件模擬內(nèi)核復(fù)位的方法
    的頭像 發(fā)表于 09-27 15:27 ?1052次閱讀
    中穎M0+<b class='flag-5'>內(nèi)核</b>芯片軟件模擬<b class='flag-5'>內(nèi)核</b><b class='flag-5'>復(fù)位</b>的方法

    華大單片機(jī)怎么用NVIC_SystemReset()軟復(fù)位?

    華大HC32F003單片機(jī)可以直接調(diào)用NVIC_SystemReset()進(jìn)行軟復(fù)位嗎,如何確保復(fù)位成功,目前發(fā)現(xiàn)有時(shí)候不能正常復(fù)位。
    發(fā)表于 09-27 06:09