一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-02-28 17:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近有朋友問了些關(guān)于STM32復位的問題,今天結(jié)合前面文章再次總結(jié)一下復位相關(guān)知識。

1STM32的復位和時鐘控制

RCC:Reset and Clock Control

每一塊STM32中都有這么一個RCC復位和時鐘控制模塊。

STM32的復位為三類:系統(tǒng)復位、電源復位和后備域復位。

系統(tǒng)復位:

1. NRST引腳上的低電平(外部復位)

2. 窗口看門狗計數(shù)終止(WWDG復位)

3. 獨立看門狗計數(shù)終止(IWDG復位)

4. 軟件復位(SW復位)

5. 低功耗管理復位

電源復位:

1. 上電/掉電復位(POR/PDR復位)

2. 從待機模式中返回

備份區(qū)域復位:

1. 軟件復位,備份區(qū)域復位可由設置備份域控制寄存器(RCC_BDCR)中的BDRST位產(chǎn)生。

2. 在VDD和VBAT兩者掉電的前提下, VDD或VBAT上電將引發(fā)備份區(qū)域復位。

2STM32的復位來源

在很多應用中,都會判斷是什么引起的復位。

比如:判斷為看門狗引起的復位,我們進行xxx操作。軟件引起的復位,我們又執(zhí)行xxx操作。

在STM32RCC模塊中,有這么一個寄存器:控制/狀態(tài)寄存器 (RCC_CSR):

這個寄存器就會記錄各種復位的狀態(tài),我們直接讀取這個寄存器(庫函數(shù)有讀寄存器接口)就能知道是什么引起的復位。

3STM32的復位來源例程

之前我提供了一個簡單Demo,STM32F103ZE(Keil)_復位來源(寄存器版):

http://pan.baidu.com/s/1hskScba

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

內(nèi)核復位:它會使STM32內(nèi)核(Cortex-M)進行復位,而不會影響其外設,如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 處理器外部的任何電路,所以單片機上的各片上外設和其它電路都不受影響。

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)復位時,各外設和功能模塊都會回到什么樣的初始狀態(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)系本站處理。 舉報投訴
  • STM32
    +關(guān)注

    關(guān)注

    2291

    文章

    11022

    瀏覽量

    363424
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    1660

    瀏覽量

    52594
  • 電復位
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    LM3724系列 低功率電壓監(jiān)控和復位IC,帶手動復位功能數(shù)據(jù)手冊

    LM3722/LM3723/LM3724 微處理器監(jiān)控電路可監(jiān)控電源 在微處理器和數(shù)字系統(tǒng)中。它們在上電期間為微處理器提供復位, 掉電、掉電條件和手動復位。 LM3722/LM3723
    的頭像 發(fā)表于 04-12 11:11 ?347次閱讀
    LM3724系列 低功率電壓監(jiān)控和<b class='flag-5'>復位</b>IC,帶手動<b class='flag-5'>復位</b>功能數(shù)據(jù)手冊

    復位電路的作用、控制方式和類型

    復位電路也是數(shù)字邏輯設計中常用的電路,不管是 FPGA 還是 ASIC 設計,都會涉及到復位,一般 FPGA或者 ASIC 的復位需要我們自己設計復位方案。
    的頭像 發(fā)表于 03-12 13:54 ?2164次閱讀
    <b class='flag-5'>復位</b>電路的作用、控制方式和類型

    FPGA復位的8種技巧

    在 FPGA 設計中,復位起到的是同步信號的作用,能夠?qū)⑺械拇鎯υO置成已知狀態(tài)。在數(shù)字電路設計中,設計人員一般把全局復位作為一個外部引腳來實現(xiàn),在加電的時候初始化設計。全局復位引腳與任何
    的頭像 發(fā)表于 11-16 10:18 ?1101次閱讀
    FPGA<b class='flag-5'>復位</b>的8種技巧

    復位電路的設計問題

    前言 最近看advanced fpga 以及fpga設計實戰(zhàn)演練中有講到復位電路的設計,才知道復位電路有這么多的門道,而不是簡單的外界信號輸入系統(tǒng)
    的頭像 發(fā)表于 11-15 11:13 ?508次閱讀
    <b class='flag-5'>復位</b>電路的設計問題

    復位電路的三種方式 復位電路的原理和作用

    復位電路是一種電子電路,用于將微控制器或其他電子設備重置到其初始狀態(tài)。這種電路通常在設備啟動時或在需要清除當前狀態(tài)以避免錯誤時使用。 1. 上電復位(Power-On Reset, POR
    的頭像 發(fā)表于 10-21 10:28 ?4849次閱讀

    復位電路的電容多大的 復位電路設計類型有哪幾種

    復位電路是電子系統(tǒng)中的一個關(guān)鍵部分,它確保系統(tǒng)在啟動或發(fā)生故障時能夠正確地初始化。復位電路的設計取決于多種因素,包括系統(tǒng)的復雜性、所需的
    的頭像 發(fā)表于 10-21 10:24 ?974次閱讀

    復位電路是如何工作的

    復位電路的基本功能 復位電路的基本功能是在系統(tǒng)啟動時或在需要時將微控制器或其他邏輯電路的輸出和狀態(tài)寄存器設置為初始狀態(tài)。這通常涉及到將所有的輸出引腳設置為低電平,所有的輸入引腳設置為高電平,
    的頭像 發(fā)表于 10-21 10:22 ?983次閱讀

    復位電路靜電整改案例分享(一)——交換機復位電路

    ? ?復位電路靜電整改案例分享(一)——交換機復位電路 一、摘要 復位電路可確保電路在啟動時處于可控的狀態(tài),避免上電造成的未知問題。復位電路通常由一個
    的頭像 發(fā)表于 10-19 14:56 ?902次閱讀
    <b class='flag-5'>復位</b>電路靜電整改案例分享(一)——交換機<b class='flag-5'>復位</b>電路

    復位電路介紹 復位電路的原理及作用

    復位電路(Reset Circuit)是現(xiàn)代電子設備中常見的一種關(guān)鍵電路,它用于確保在正確的時間和條件下將系統(tǒng)恢復到初始狀態(tài)。復位電路的設計和應用對于保障電子系統(tǒng)的穩(wěn)定性和可靠性至關(guān)重
    的頭像 發(fā)表于 10-18 16:44 ?7271次閱讀

    單片機復位電路電阻電容如何取值

    在單片機系統(tǒng)中,復位電路是非常重要的組成部分,它確保了單片機在啟動時能夠可靠地進入初始狀態(tài),以及在異常情況下能夠進行復位操作。復位電路通常由
    的頭像 發(fā)表于 08-06 10:28 ?2199次閱讀

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

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

    雙管正激勵磁復位電路的作用

    雙管正激勵磁復位電路是一種廣泛應用于電子設備中的電路,它具有多種功能和優(yōu)點。 一、雙管正激勵磁復位電路的作用 雙管正激勵磁復位電路是一種特殊的電路,它具有以下主要作用: 提供穩(wěn)定的電源:雙管正激勵磁
    的頭像 發(fā)表于 08-02 15:41 ?999次閱讀

    JK觸發(fā)器的置位和復位有什么區(qū)別

    JK觸發(fā)器的置位(Set)和復位(Reset)是其在數(shù)字電路中的兩種基本狀態(tài)控制功能,它們在操作原理、輸入條件以及觸發(fā)器輸出狀態(tài)的變化上有所區(qū)別。以下是對JK觸發(fā)器置位和復位的詳細分析
    的頭像 發(fā)表于 07-27 14:50 ?3866次閱讀

    FPGA同步復位和異步復位

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

    速度繼電器復位轉(zhuǎn)速介紹

    速度繼電器是一種用于檢測和控制電動機轉(zhuǎn)速的電氣元件,廣泛應用于工業(yè)自動化、電力系統(tǒng)、交通等領(lǐng)域。速度繼電器的復位轉(zhuǎn)速是指在電動機運行過程中,當轉(zhuǎn)速下降到某一特定值時,速度繼電器能夠自動復位并重
    的頭像 發(fā)表于 06-28 14:33 ?1312次閱讀