欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

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

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-02-28 17:13 ? 次閱讀

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

1STM32的復(fù)位和時(shí)鐘控制

RCC:Reset and Clock Control

每一塊STM32中都有這么一個(gè)RCC復(fù)位和時(shí)鐘控制模塊。

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

系統(tǒng)復(fù)位:

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

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

3. 獨(dú)立看門狗計(jì)數(shù)終止(IWDG復(fù)位)

4. 軟件復(fù)位(SW復(fù)位)

5. 低功耗管理復(fù)位

電源復(fù)位:

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

2. 從待機(jī)模式中返回

備份區(qū)域復(fù)位:

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

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

2STM32的復(fù)位來源

在很多應(yīng)用中,都會(huì)判斷是什么引起的復(fù)位。

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

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

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

3STM32的復(fù)位來源例程

之前我提供了一個(gè)簡(jiǎn)單Demo,STM32F103ZE(Keil)_復(fù)位來源(寄存器版):

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

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

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

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

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

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

這種復(fù)位的作用范圍覆蓋了整個(gè)CM3處理器中,除了調(diào)試邏輯之外的所有角落,但是它不會(huì)影響到 CM3 處理器外部的任何電路,所以單片機(jī)上的各片上外設(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)復(fù)位唯一的區(qū)別。

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

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

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

這里有一個(gè)要注意的問題:從 SYSRESETREQ 被置為有效,到復(fù)位發(fā)生器執(zhí)行復(fù)位命令,往往會(huì)有一個(gè)延時(shí)。在此延時(shí)期間,處理器仍然可以響應(yīng)中斷請(qǐng)求。但我們的本意往往是要讓此次執(zhí)行到此為止,不要再做任何其它事情了。所以,最好在發(fā)出復(fù)位請(qǐng)求前,先把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)核復(fù)位與系統(tǒng)源代碼和相近,差異在于SYSRESETREQ和SYSRESETREQ這兩位。

關(guān)于復(fù)位的知識(shí),在實(shí)際項(xiàng)目中應(yīng)用的比較多。

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

    關(guān)注

    2273

    文章

    10926

    瀏覽量

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

    關(guān)注

    16

    文章

    1222

    瀏覽量

    50954
  • 電復(fù)位
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    6087
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA復(fù)位的8種技巧

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

    復(fù)位電路的設(shè)計(jì)問題

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

    復(fù)位電路的電容多大的 復(fù)位電路設(shè)計(jì)類型有哪幾種

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

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

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

    復(fù)位電路介紹 復(fù)位電路的原理及作用

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

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

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

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

    JK觸發(fā)器的置位(Set)和復(fù)位(Reset)是其在數(shù)字電路中的兩種基本狀態(tài)控制功能,它們?cè)诓僮髟怼⑤斎霔l件以及觸發(fā)器輸出狀態(tài)的變化上有所區(qū)別。以下是對(duì)JK觸發(fā)器置位和復(fù)位的詳細(xì)分析
    的頭像 發(fā)表于 07-27 14:50 ?2733次閱讀

    FPGA同步復(fù)位和異步復(fù)位

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

    示波器測(cè)量復(fù)位信號(hào)的原理和方法

    在電子工程領(lǐng)域,復(fù)位信號(hào)是確保系統(tǒng)穩(wěn)定、可靠運(yùn)行的關(guān)鍵因素之一。復(fù)位信號(hào)通常用于在系統(tǒng)出現(xiàn)故障或異常時(shí),將系統(tǒng)恢復(fù)到初始狀態(tài),以便重新開始工
    的頭像 發(fā)表于 05-17 17:14 ?1644次閱讀

    PDR_ON復(fù)位和NRST引腳復(fù)位,對(duì)STM32F407IG的影響有什么區(qū)別呢?

    新手請(qǐng)問大家在實(shí)際做工程的時(shí)候,有沒有用PDR_ON引腳做芯片復(fù)位呢? PDR_ON復(fù)位和 NRST引腳復(fù)位,對(duì)芯片的影響有什么區(qū)別呢? 謝謝大家。 PS:我用的是
    發(fā)表于 05-16 07:21

    STM32如何用HAL庫進(jìn)行內(nèi)核復(fù)位

    STM32如何用HAL庫進(jìn)行內(nèi)核復(fù)位 普通的系統(tǒng)復(fù)位函數(shù)如下: / ** 簡(jiǎn)短的系統(tǒng)重置 詳細(xì)
    發(fā)表于 04-11 06:49

    電容在復(fù)位電路中的作用(復(fù)位電路具體要怎么設(shè)計(jì))

    數(shù)字電路中寄存器和 RAM 在上電之后默認(rèn)的狀態(tài)和數(shù)據(jù)是不確定的,如果有復(fù)位,我們可以把寄存器復(fù)位到初始狀態(tài),RAM 的數(shù)據(jù)可以通過復(fù)位來觸發(fā) RAM 初始化程序邏輯如果進(jìn)入了錯(cuò)誤的狀態(tài)。
    發(fā)表于 03-13 12:16 ?1721次閱讀
    電容在<b class='flag-5'>復(fù)位</b>電路中的作用(<b class='flag-5'>復(fù)位</b>電路具體要怎么設(shè)計(jì))

    MCU復(fù)位RAM會(huì)保持嗎,如何實(shí)現(xiàn)復(fù)位時(shí)變量數(shù)據(jù)保持

    在使用MCU時(shí),通常大家默認(rèn)MCU復(fù)位時(shí)RAM會(huì)被復(fù)位清零,那實(shí)際MCU復(fù)位時(shí)RAM是什么狀態(tài)?如何讓mcu復(fù)位時(shí)RAM保持不變呢?
    的頭像 發(fā)表于 03-01 09:32 ?2632次閱讀
    MCU<b class='flag-5'>復(fù)位</b>RAM會(huì)保持嗎,如何實(shí)現(xiàn)<b class='flag-5'>復(fù)位</b>時(shí)變量數(shù)據(jù)保持

    ABB變頻器怎么復(fù)位 | 復(fù)位時(shí)可能會(huì)出現(xiàn)哪些問題?

    ABB變頻器是一種應(yīng)用廣泛的工業(yè)自動(dòng)化設(shè)備,廣泛應(yīng)用于電機(jī)控制、電力傳輸、風(fēng)機(jī)控制和制造等領(lǐng)域。然而,在使用ABB變頻器的過程中,有時(shí)候我們可能需要對(duì)設(shè)備進(jìn)行復(fù)位,以達(dá)到重新設(shè)置和調(diào)整的目的。那么
    的頭像 發(fā)表于 02-21 10:50 ?8517次閱讀
    ABB變頻器怎么<b class='flag-5'>復(fù)位</b> | <b class='flag-5'>復(fù)位</b>時(shí)可能會(huì)出現(xiàn)哪些問題?

    復(fù)位電路的基本功能介紹

    復(fù)位電路是用于將系統(tǒng)恢復(fù)到已知的、穩(wěn)定的初始狀態(tài)。這一過程通常被稱為“復(fù)位”,它在很多電子設(shè)備的正常運(yùn)行中起著至關(guān)重要的作用。復(fù)位操作可以由多種原因觸發(fā),包括電源上電、用戶操作、硬件故
    的頭像 發(fā)表于 02-16 10:14 ?1787次閱讀
    <b class='flag-5'>復(fù)位</b>電路的基本功能介紹