日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]STM32軟件復(fù)位(基于庫文件V3.5)

 STM32軟件復(fù)位(基于庫文件V3.5)

void SoftReset(void)

{

__set_FAULTMASK(1); // 關(guān)閉所有中端

NVIC_SystemReset();// 復(fù)位

}

在官方軟件庫的 core_cm3.h 文件里 直接提供了 系統(tǒng)復(fù)位的函數(shù)

static __INLINE void NVIC_SystemReset(void)

{

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

(SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |

SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */

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

while(1); /* wait until reset */

}

但是不是直接調(diào)用這個(gè)函數(shù)就OK了?

在Cortex-M3權(quán)威指南中有這么一句話

這里有一個(gè)要注意的問題:從SYSRESETREQ 被置為有效,到復(fù)位發(fā)生器執(zhí)行復(fù)位命令,

往往會(huì)有一個(gè)延時(shí)。在此延時(shí)期間,處理器仍然可以響應(yīng)中斷請(qǐng)求。但我們的本意往往是要

讓此次執(zhí)行到此為止,不要再做任何其它事情了。所以,最好在發(fā)出復(fù)位請(qǐng)求前,先把

FAULTMASK 置位。

所以最好在將FAULTMASK 置位才萬無一失。

同樣官方 core_cm3.h 文件里也直接提供了該函數(shù)

static __INLINE void __set_FAULTMASK(uint32_t faultMask)

{

register uint32_t __regFaultMask __ASM("faultmask");

__regFaultMask = (faultMask & 1);

}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉