91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

stm32軟復位 內(nèi)核復位和系統(tǒng)復位

孤獨是啥 ? 來源:孤獨是啥 ? 作者:孤獨是啥 ? 2023-08-01 17:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

4STM32系統(tǒng)和內(nèi)核復位

內(nèi)核復位:它會使STM32內(nèi)核(Cortex-M)進行復位,而不會影響其外設(shè),如GPIO、TIM、USART、SPI等這些寄存器的復位。

系統(tǒng)復位:這個復位會使整個芯片的所有電路都進行復位,系統(tǒng)默認的函數(shù)接口NVIC_SystemReset就是系統(tǒng)復位(位于core_cm*.h)。

1.NVIC_CoreReset內(nèi)核復位

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

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

C語言版函數(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)復位唯一的區(qū)別。

2.NVIC_SysReset系統(tǒng)復位

系統(tǒng)復位是置位同一個寄存器中的 SYSRESETREQ 位。這種復位則會波及整個芯片上的電路:它會使 CM3 處理器把送往系統(tǒng)復位發(fā)生器的請求線置為有效。但是系統(tǒng)復位發(fā)生器不是CM3的一部分,而是由芯片廠商實現(xiàn),因此不同的芯片對此復位的響應也不同。因此,讀者需要認真參閱該芯片規(guī)格書,明白當發(fā)生片內(nèi)復位時,各外設(shè)和功能模塊都會回到什么樣的初始狀態(tài),或者有哪些功能模塊不受影響(比如, STM32系列的芯片有后備存儲區(qū),該區(qū)就被特殊對待)。

大多數(shù)情況下,復位發(fā)生器在響應 SYSRESETREQ 時,它也會同時把 CM3 處理器的系統(tǒng)復位信號(SYSRESETn)置為有效。通常, SYSRESETREQ 不應復位調(diào)試邏輯。

這里有一個要注意的問題:從 SYSRESETREQ 被置為有效,到復位發(fā)生器執(zhí)行復位命令,往往會有一個延時。在此延時期間,處理器仍然可以響應中斷請求。但我們的本意往往是要讓此次執(zhí)行到此為止,不要再做任何其它事情了。所以,最好在發(fā)出復位請求前,先把FAULTMASK置位。因此,我在提供源代碼中有這么一句:__set_FAULTMASK(1);,也就是置位FAULTMASK。


C語言版函數(shù):

voidNVIC_SysReset(void){ __DSB(); SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | SCB_AIRCR_SYSRESETREQ_Msk); __DSB(); while(1);}

匯編版函數(shù):

__asm void NVIC_SysReset_a(void){ LDR R0, =0xE000ED0C LDR R1, =0x05FA0004 STR R1, [R0] deadloop_Sys B deadloop_Sys}

內(nèi)核復位與系統(tǒng)源代碼和相近,差異在于SYSRESETREQ和SYSRESETREQ這兩位。

關(guān)于復位的知識,在實際項目中應用的比較多。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    20255

    瀏覽量

    252405
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    4

    文章

    1468

    瀏覽量

    42887
  • STM32
    +關(guān)注

    關(guān)注

    2310

    文章

    11162

    瀏覽量

    373506
  • C語言
    +關(guān)注

    關(guān)注

    183

    文章

    7644

    瀏覽量

    145632
  • 復位
    +關(guān)注

    關(guān)注

    0

    文章

    179

    瀏覽量

    25050
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    復位那些小事—典型的復位流程

    在聊到復位的時候總會區(qū)分兩個概念:硬復位復位。
    的頭像 發(fā)表于 12-04 13:46 ?6408次閱讀

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

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

    MCU復位原理詳解

    想要實現(xiàn)復位,先給VRCTKEY賦個0x05FA,再想SYSRESETEQ寫1即可實現(xiàn)復位。
    發(fā)表于 10-27 10:47 ?1w次閱讀

    STM32復位來源 以及系統(tǒng)內(nèi)核復位區(qū)別

    STM32復位來源、以及系統(tǒng)內(nèi)核復位區(qū)別
    的頭像 發(fā)表于 02-28 17:13 ?8980次閱讀

    CM3(STM32) 內(nèi)核復位系統(tǒng)復位區(qū)別及應用

    CM3(STM32)內(nèi)核復位系統(tǒng)復位區(qū)別及應用
    的頭像 發(fā)表于 03-20 09:43 ?6246次閱讀
    CM3(<b class='flag-5'>STM32</b>) <b class='flag-5'>內(nèi)核</b><b class='flag-5'>復位</b>與<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>復位</b>區(qū)別及應用

    stm32復位電路工作原理

    L1、STM32L4、STM32L4+)、高性能產(chǎn)品(STM32F2、STM32F4、STM32F7、S
    的頭像 發(fā)表于 08-07 11:59 ?4w次閱讀

    stm32復位方式分類

    stm32復位方式分類按照復位區(qū)域的范圍分類,大概可以分為系統(tǒng)復位,電源復位,備份域
    發(fā)表于 12-07 19:36 ?12次下載
    <b class='flag-5'>stm32</b><b class='flag-5'>復位</b>方式分類

    stm32復位介紹

    復位介紹STM32F10xxx支持三種復位形式,分別為系統(tǒng)復位、上電復位、備份區(qū)域
    發(fā)表于 12-24 19:32 ?4次下載
    <b class='flag-5'>stm32</b>的<b class='flag-5'>復位</b>介紹

    STM32 復位

    1、復位? ? 共有三種類型的復位,分別為系統(tǒng)復位、電源復位和備份域復位。1.1、
    發(fā)表于 12-27 18:24 ?9次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>復位</b>

    STM32復位來源、以及系統(tǒng)內(nèi)核復位區(qū)別

    每一塊STM32中都有這么一個RCC復位和時鐘控制模塊。STM32復位為三類:系統(tǒng)復位、電源
    發(fā)表于 02-10 10:30 ?6次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>復位</b>來源、以及<b class='flag-5'>系統(tǒng)</b>和<b class='flag-5'>內(nèi)核</b><b class='flag-5'>復位</b>區(qū)別

    淺析stm32復位電路方法

    說到復位,我們都不會陌生,系統(tǒng)基本都有一個復位按鍵。復位的種類有很多:上電復位、掉電復位、
    發(fā)表于 02-11 15:10 ?45次下載
    淺析<b class='flag-5'>stm32</b><b class='flag-5'>復位</b>電路方法

    STM32芯片的那些系統(tǒng)復位功能

    我們知道,STM32芯片里有很多系統(tǒng)級的復位,比方上電復位、欠壓復位、看門狗復位、軟件
    的頭像 發(fā)表于 10-19 09:06 ?6720次閱讀

    stm32復位電路如何設(shè)計

    1,描述 ? 說到復位,我們都不會陌生,系統(tǒng)基本都有一個復位按鍵。復位的種類有很多:上電復位、掉電復位
    的頭像 發(fā)表于 06-22 09:06 ?4345次閱讀

    如何排查GD32 MCU復位是由哪個復位源導致的?

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

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

    STM32是一款廣泛使用的微控制器,其復位電路設(shè)計對于系統(tǒng)的穩(wěn)定性和可靠性至關(guān)重要。本文將詳細介紹STM32復位電路中使用
    的頭像 發(fā)表于 08-06 10:26 ?3997次閱讀