色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32軟件復(fù)位(基于庫(kù)文件V3.5)

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

          作者: 時(shí)間:2013-03-25 來(lái)源:網(wǎng)絡(luò) 收藏

          (庫(kù))

          本文引用地址:http://cafeforensic.com/article/148069.htm

          void SoftReset(void)

          {

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

          NVIC_SystemReset();//

          }

          在官方庫(kù)的 core_cm3.h 里 直接提供了 系統(tǒng)的函數(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è)要注意的問(wèn)題:從SYSRESETREQ 被置為有效,到復(fù)位發(fā)生器執(zhí)行復(fù)位命令,

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

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

          FAULTMASK 置位。

          所以最好在將FAULTMASK 置位才萬(wàn)無(wú)一失。

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

          static __INLINE void __set_FAULTMASK(uint32_t faultMask)

          {

          register uint32_t __regFaultMask __ASM(faultmask);

          __regFaultMask = (faultMask 1);

          }



          關(guān)鍵詞: 文件 V3.5 基于 復(fù)位 軟件 STM32

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉