那曲檬骨新材料有限公司

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

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

3天內不再提示

STM32復位來源(寄存器版)

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-14 14:13 ? 次閱讀

最近項目遇到了一個問題:一個子系統,具有IAP升級的功能,Bootloader位于0x08000000,也就是說系統在運行過程允許復位。但是,該子系統需要在上電的過程中處理某項任務(而且只需要上電的那一次)。

問題來了:我們如何判斷系統是第一次上電復位?

解決的辦法有很多種,但是最簡單的辦法就是獲取系統復位來源,詳情請看文章。

其實,這篇文章的內容也能回答之前一位網友的問題,不知你會不會閱讀本文。

RCC復位和時鐘控制

RCC:Reset and Clock Control

相信大家都知道RCC是什么,主要就是講述復位和時鐘的章節。先來講述一下復位種類。

STM32的復位大概分為三類:系統復位、電源復位和后備域復位。

系統復位:

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

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

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

4. 軟件復位(SW復位)

5. 低功耗管理復位

電源復位:

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

2. 從待機模式中返回

備份區域復位:

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

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

RCC_CSR

CSR:Control/Status Register,即控制/狀態寄存器

在STM32種,RCC的寄存器和功能因芯片的不同而不同,但RCC_CSR寄存器是眾多STM32種都具有的一個。

這個寄存器就會記錄各種復位的狀態,我們只需要讀取這個寄存器即可知道是什么樣子引起的復位。

源代碼實例

上面說了那么多,其實大家都容易理解,但只有真正實測過源代碼,才能真正起到掌握的作用。

為了方便某些懶惰的朋友,我將提供測試源代碼,方便大家學習和掌握。

本文源代碼給予前面文章【CM3內核復位與系統復位區別及應用】提供的源代碼的基礎上修改而來。

現在主要看下測試源代碼和測試效果:

各種情況打印結果:

1.上電復位打印信息

CSR = C000000

5.POR/PDR reset

6.PIN reset

Demo...

Demo...

2.按鍵(PIN)復位打印信息

CSR = 4000000

6.PIN reset

Demo...

Demo...

3.內核復位 NVIC_CoreReset();打印信息

CSR = 0

Demo...

Demo...

4.系統復位 NVIC_SysReset();打印信息

CSR = 14000000

4.Software reset

6.PIN reset

Demo...

Demo...

到了這一步,相信大家基本明白了。但是,還有值得進一步分析的地方,這里我算是給大家安排的作業(只有愿意動腦思考的人,才會有進步)。

為了方便大家學習,我將源代碼提供給大家下載(雖只有STM32F1,但其他系列類似)。

STM32F103ZE(Keil)_復位來源(寄存器版):

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

推薦閱讀:

CM3(STM32)內核復位與系統復位區別及應用

有一種修飾符能使變量在處理器復位而不被初始化

最后

微信搜索“EmbeddDeveloper” 或者掃描下面二維碼、關注,在我的底部菜單查看更多精彩內容!

長按識別二維碼 關注

原文標題:一篇很簡單,有必要了解的文章 - STM32復位來源(寄存器版)

文章出處:【微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5363

    瀏覽量

    121199
  • STM32
    +關注

    關注

    2272

    文章

    10924

    瀏覽量

    357610
  • IAP
    IAP
    +關注

    關注

    2

    文章

    164

    瀏覽量

    24393
收藏 人收藏

    評論

    相關推薦

    ADS9234R復位、寄存器如何配置?

    請問一下,我用MCU正常配置這款芯片,我是先用復位引腳通過MCU輸出低電平拉低進行復位,還是先掉電后上電,再配置寄存器呢?還有一個問題就是,我寫入寄存器,每寫入一個命令是否會有什么數
    發表于 11-14 06:59

    瀚海微SD NAND之SD 協議(38)寄存器&復位&開解鎖

    塊,以16位CRC為后綴。CSD命令的數據超時不能設置為卡的TAAC,因為該值存儲在卡的CSD中。 因此,CSD寄存器的讀延遲使用標準響應超時值(NcR)。 復位順序 SD存儲卡需要一個定義好的復位順序。 上電
    的頭像 發表于 10-10 09:28 ?394次閱讀

    寄存器間接尋址和寄存器尋址的區別

    寄存器間接尋址和寄存器尋址是計算機體系結構中兩種重要的尋址方式,它們在指令執行過程中起著關鍵作用。下面將從定義、原理、特點、應用場景以及區別等方面對這兩種尋址方式進行詳細闡述。
    的頭像 發表于 10-05 17:13 ?2114次閱讀

    通用寄存器是什么意思

    在計算機體系結構中,通用寄存器是中央處理(CPU)內部最為核心和基礎的組成部分之一。它們被設計為能夠存儲和傳輸各種類型的數據和指令,是CPU進行數據處理和運算的關鍵工具。通用寄存器不僅在程序的執行過程中起著至關重要的作用,還直
    的頭像 發表于 09-05 14:13 ?1224次閱讀

    寄存器的類型和作用

    在計算機科學中,寄存器(Register)是一種高速存儲單元,它位于CPU內部,與CPU的運算單元和邏輯控制單元緊密相連。寄存器的主要作用是暫時存儲指令、操作數和地址等臨時數據,以便CPU快速訪問和處理。由于寄存器直接集成在CP
    的頭像 發表于 09-05 14:11 ?2594次閱讀

    寄存器故障分析

    寄存器故障分析是計算機硬件維護與系統穩定性保障中的重要環節。寄存器作為計算機中的關鍵組成部分,負責存儲和傳輸數據,其穩定性和可靠性直接影響到整個計算機系統的性能。以下是對寄存器故障的全面分析,包括故障類型、故障現象、故障原因及診
    的頭像 發表于 08-29 11:26 ?1278次閱讀

    寄存器是什么意思?寄存器是如何構成的?

    在計算機科學中,寄存器(Register)是一個高速存儲單元,它位于中央處理(CPU)內部,用于存儲計算機程序執行過程中所需要的數據、指令地址或狀態信息。寄存器是計算機體系結構中至關重要的組成部分,對計算機的運算速度和性能有著
    的頭像 發表于 08-02 18:23 ?4867次閱讀
    <b class='flag-5'>寄存器</b>是什么意思?<b class='flag-5'>寄存器</b>是如何構成的?

    寄存器尋址和直接尋址的區別

    寄存器尋址和直接尋址是計算機指令系統中的兩種基本尋址方式。它們在指令的執行過程中起著至關重要的作用,決定了指令操作數的來源和目標。下面我們將介紹這兩種尋址方式的特點、區別以及在實際應用中的優缺點
    的頭像 發表于 07-12 10:42 ?2414次閱讀

    寄存器尋址的實現方式

    在計算機體系結構中,寄存器尋址是一種常見的尋址方式,它允許程序直接訪問CPU內部的寄存器。寄存器尋址可以提高程序的執行效率,因為它避免了對內存的訪問。 寄存器尋址的基本概念
    的頭像 發表于 07-12 10:36 ?839次閱讀

    寄存器分為基本寄存器和什么兩種

    寄存器是計算機中用于存儲數據的高速存儲單元,它們是CPU內部的重要組成部分。寄存器可以分為基本寄存器和擴展寄存器兩種類型。 一、基本寄存器
    的頭像 發表于 07-12 10:31 ?1624次閱讀

    移位寄存器右移是怎么移位的

    移位寄存器是一種在數字電路和計算機科學中廣泛使用的存儲設備,它可以用來存儲和傳輸數據。在移位寄存器中,數據可以通過移位操作來實現數據的傳輸和處理。移位寄存器的移位操作有兩種基本形式:左移和右移。本文
    的頭像 發表于 07-12 10:14 ?1761次閱讀

    寄存器和內存的區別

    在計算機體系結構中,寄存器和內存是兩個至關重要的組成部分。它們各自承擔著不同的角色,共同確保計算機系統的正常運行。本文將對寄存器和內存進行詳細的介紹,包括它們的定義、功能以及二者之間的主要區別。
    的頭像 發表于 05-12 17:11 ?2587次閱讀

    干貨滿滿:ARM的內核寄存器講解

    內核寄存器與外設寄存器: 內核寄存器與外設寄存器是完全不同的概念。內核寄存器是指 CPU 內部的寄存器
    發表于 04-17 11:47 ?4290次閱讀
    干貨滿滿:ARM的內核<b class='flag-5'>寄存器</b>講解

    STM32G0B1 hal有沒有復位所有寄存器的函數或者demo?

    本人用的STM32G0B1,我想boot跳轉后,先清理寄存器.hal有沒有復位所有寄存器的函數或者demo?
    發表于 03-08 07:31

    如何根據自己設計中的寄存器配置總線定義來生成一套寄存器配置模版

    無論是FPGA還是ASIC,系統設計中總會存在配置寄存器總線的使用,我們會將各種功能、調試寄存器掛載在寄存器總線上使用。
    的頭像 發表于 03-04 13:56 ?1253次閱讀
    如何根據自己設計中的<b class='flag-5'>寄存器</b>配置總線定義來生成一套<b class='flag-5'>寄存器</b>配置模版
    百家乐赌场论坛博客| 百家乐官网网上真钱麻将| 玩德州扑克技巧| 云博娱乐城,| 德州扑克发牌员| bet365娱乐平台| 爱赢娱乐城开户| 库车县| 大发888m磨卡游戏| 百家乐网络视频游戏| 百家乐真人游戏娱乐网| 金都百家乐的玩法技巧和规则| 百家乐国际赌场娱乐网规则| 新天地百家乐的玩法技巧和规则| 怎么看百家乐走势| bet365提款时间| 百家乐官网起步多少| 真人百家乐官网澳门娱乐城| 广东百家乐官网网| 澳门百家乐免费开户| 百家乐打线| 大发888怎么注册不了| 乐众国际| 最好的百家乐官网博彩公司| 龙博百家乐官网的玩法技巧和规则 | 娱乐城开户送金| 百家乐官网投注打三断| 百家乐官网路单破| 元游棋牌游戏大厅下载| 哪里有百家乐官网赌博网站| 百家乐官网太阳娱乐网| 百家乐大赌城| 德州扑克中文单机版| r百家乐官网娱乐下载| 三星百家乐官网的玩法技巧和规则 | 海立方娱乐城线路| 赌博百家乐官网弱点| 24山辅星水法分阴阳| 威尼斯人娱乐城官方地址| 大港区| 百家乐官网博牌规|