日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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)注

    2313

    文章

    11195

    瀏覽量

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

    關(guān)注

    16

    文章

    2120

    瀏覽量

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

    關(guān)注

    0

    文章

    5

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    同步復位和異步復位到底該用哪個

    做FPGA/數(shù)字IC設計的,平時寫得最多的可能就是復位邏輯了。但你有沒有這種感覺:看別人代碼,有的用同步復位,有的用異步復位,有的又搞什么"異步復位同步釋放"——到底該用哪個?
    的頭像 發(fā)表于 04-22 09:42 ?415次閱讀
    同步<b class='flag-5'>復位</b>和異步<b class='flag-5'>復位</b>到底該用哪個

    JL杰理AC696N開發(fā)板開發(fā)藍牙音頻方案之電源管理進階:內(nèi)核電壓調(diào)節(jié)與長按復位

    前面聊了復位源查詢和IO喚醒配置,這些都是低功耗的基礎(chǔ)。但在實際產(chǎn)品中,電源管理還有幾個坑值得單獨拎出來說。內(nèi)核電壓什么時候該提、SD卡供電腳怎么控制、長按復位怎么配才能不誤觸發(fā)——這些配置看著
    的頭像 發(fā)表于 03-28 00:18 ?309次閱讀
    JL杰理AC696N開發(fā)板開發(fā)藍牙音頻方案之電源管理進階:<b class='flag-5'>內(nèi)核</b>電壓調(diào)節(jié)與長按<b class='flag-5'>復位</b>

    SGM823:集成復位、看門狗和手動復位功能的微處理器監(jiān)控電路

    SGM823:集成復位、看門狗和手動復位功能的微處理器監(jiān)控電路 在電子設計領(lǐng)域,微處理器的穩(wěn)定運行至關(guān)重要。SGM823作為一款功能強大的微處理器監(jiān)控電路,為系統(tǒng)的可靠性提供了有力保障。今天,我們
    的頭像 發(fā)表于 03-23 17:20 ?645次閱讀

    深度解析DS1830/A復位序列器:特性、操作與應用

    深度解析DS1830/A復位序列器:特性、操作與應用 在電子系統(tǒng)設計中,復位序列器是確保系統(tǒng)穩(wěn)定啟動和可靠運行的關(guān)鍵組件。今天我們就來深入探討DALLAS SEMICONDUCTOR(
    的頭像 發(fā)表于 02-28 15:10 ?288次閱讀

    MAX6443–MAX6452:具備長手動復位設置周期的微處理器復位電路

    MAX6443–MAX6452:具備長手動復位設置周期的微處理器復位電路 在電子設備的設計中,微處理器復位電路起著至關(guān)重要的作用,它能確保設備在各種情況下穩(wěn)定運行。今天我們就來詳細了解一下
    的頭像 發(fā)表于 02-27 14:45 ?361次閱讀

    如何用軟件實現(xiàn)系統(tǒng)復位?

    看門狗的工作過程是怎樣的? 如何用軟件實現(xiàn)系統(tǒng)復位?
    發(fā)表于 01-08 06:15

    CW32在不同復位方式對應的復位范圍

    上電復位 / 掉電復位(POR/BOR) 整個 MCU 引腳輸入復位(NRST) 整個 MCU(除 RTC 外) IWDT/WWDT 復位 M0+
    發(fā)表于 12-22 09:44

    什么是內(nèi)核LOCKUP故障復位?

    當 CPU 遇到嚴重異常(如讀取到的指令無效、訪問 FLASH 時位寬和目標地址不匹配),會將 PC 指針停在當前地址處鎖定,并產(chǎn)生內(nèi)核 LOCKUP 故障復位信號。 芯片上電后,LOCKUP 復位
    發(fā)表于 12-15 08:33

    CW32F030支持的6種系統(tǒng)復位方式分享

    CW32F030 支持的6種系統(tǒng)復位方式: ?上電復位 / 掉電復位(POR/BOR) ?引腳輸入復位(NRST) ?IWDT/WWDT
    發(fā)表于 12-15 06:31

    內(nèi)核LOCKUP故障復位方法

    當 CPU 遇到嚴重異常(如讀取到的指令無效、訪問 FLASH 時位寬和目標地址不匹配),會將 PC 指針停在當前地址處鎖定,并產(chǎn)生內(nèi)核 LOCKUP 故障復位信號。芯片上電后,LOCKUP 復位
    發(fā)表于 12-11 07:15

    用于穩(wěn)定電源設計的復位IC應用實例

    現(xiàn)代電子設備正面臨電壓波動、浪涌電壓以及輸入電源不穩(wěn)定等問題。如果缺乏適當?shù)碾妷罕O(jiān)測與復位保護功能,系統(tǒng)可能會出現(xiàn)誤動作、異常復位,甚至導致硬件損壞。
    的頭像 發(fā)表于 12-08 09:41 ?760次閱讀
    用于穩(wěn)定電源設計的<b class='flag-5'>復位</b>IC應用實例

    揭秘RESET復位鍵:引腳設計如何支撐硬件系統(tǒng)的重啟通路

    RESET復位鍵在電子設備中承擔著重啟通路的核心角色,當系統(tǒng)因軟件故障、硬件沖突或電源波動陷入異常時,它能通過硬件層面的強制復位,使設備快速脫離故障狀態(tài)。這一功能的實現(xiàn)基于引腳功能與硬件設計的深度
    的頭像 發(fā)表于 11-28 15:18 ?517次閱讀
    揭秘RESET<b class='flag-5'>復位</b>鍵:引腳設計如何支撐硬件<b class='flag-5'>系統(tǒng)</b>的重啟通路

    GraniStudio:軸復位例程

    功能說明 實現(xiàn)單軸復位、兩軸同時復位以及兩軸順序復位功能。 2.1通過初始化運控板卡算子連接格拉尼總線型運控卡,導入工程自動進行連接,此算子為使用運控控制板卡的第一項操作,后續(xù)運控算子
    的頭像 發(fā)表于 08-22 16:05 ?806次閱讀
    GraniStudio:軸<b class='flag-5'>復位</b>例程

    GraniStudio零代碼平臺軸復位算子支持多少個軸同時復位,有哪些回零模式?

    GraniStudio平臺在軸復位的功能上未對同時復位的軸數(shù)進行硬性限制,理論上支持任意數(shù)量軸同步復位,需要考慮的是在做多軸同步復位時要評估機械安全風險,建議提前確認機械在多軸同時
    的頭像 發(fā)表于 07-07 18:02 ?800次閱讀
    GraniStudio零代碼平臺軸<b class='flag-5'>復位</b>算子支持多少個軸同時<b class='flag-5'>復位</b>,有哪些回零模式?

    復位電路的核心功能和主要類型

    復位電路(Reset Circuit) 是數(shù)字系統(tǒng)中的關(guān)鍵功能模塊,用于確保設備在上電、電壓波動或異常狀態(tài)下可靠復位至初始狀態(tài)。其設計直接影響系統(tǒng)的穩(wěn)定性和抗干擾能力。
    的頭像 發(fā)表于 06-30 14:24 ?1912次閱讀
    <b class='flag-5'>復位</b>電路的核心功能和主要類型
    邓州市| 水富县| 偃师市| 兴仁县| 嘉定区| 休宁县| 漳浦县| 汽车| 寻乌县| 周宁县| 盐亭县| 秭归县| 焦作市| 特克斯县| 岳阳市| 思南县| 云霄县| 嫩江县| 固始县| 伊川县| 开江县| 唐河县| 绍兴市| 陆川县| 商丘市| 六安市| 香格里拉县| 乐昌市| 庆元县| 白山市| 盐城市| 武邑县| 嘉禾县| 且末县| 美姑县| 平邑县| 汶川县| 阜康市| 宽甸| 融水| 克拉玛依市|