色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-20 09:43 ? 次閱讀

Ⅰ寫在前面

某些系統允許復位,但對外設又有特殊要求:某一個IO狀態不能因為復位而改變,某一個定時器計數器不能改變等。

例子:我一個A系統通過一個IO控制另一個B系統的電源,而這個IO置高時才開啟B系統的電源。

正常工作過程中,B系統只有收到A系統關機命令任務才會進行關機(也就是說不能掉電關機),而A系統在工作過程中有復位的需求。

這個時候如果我使用常規的引腳復位,就會使IO置低,不符合要求,就需要使用到本文說到的內核復位。

Ⅱ關于復位

說到復位,我們都不會陌生,學習時,開發板上基本都有一個復位按鍵。

復位的種類有很多:上電復位、掉電復位、復位引腳復位、看門狗復位、軟件復位等。

上面說的復位按鍵,也就是對應復位引腳復位;而本文說的內核復位與系統復位是屬于軟件復位。

Ⅲ內核與系統復位區別

本文說的內核是指處理器內核,拿STM32F1處理器來說,STM32F1的內核就是Cortex-M3內核,而這里的系統就是包含內核和外設整個一起。

內核復位:它會使Cortex-M3進行復位,而不會影響其外設,如GPIO、TIM、USART、SPI等這些寄存器的復位。

系統復位:這個復位會使整個芯片的所有電路都進行復位,我們查看寄存器手冊時,會發現某某某寄存器復位值等于多少。

因此,我們常說的復位一般指的就是系統復位。

Ⅳ內核與系統復位應用及代碼分析

本文拿CM3(STM32F1)進行舉例說明,其他芯片類似。在下一節提供源代碼工程供大家參考學習。

本文提供的復位函數分:內核和系統復位、C語言匯編共四個版本(在一個工程),主要講解其4個函數。

void NVIC_CoreReset(void);

void NVIC_CoreReset_a(void);

void NVIC_SysReset(void);

void NVIC_SysReset_a(void);

本章節內容可以參照Cotrex-M3權威指南中,Cotrex-M3其他特性章節下的自復位控制(軟件復位)。中文版位于第13張,英文版位于第14張。

同時結合core_cm3.h源代碼,其中系統復位中的C語言版就是core_cm3.h里面的源代碼。

1.NVIC_CoreReset內核復位

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

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

C語言版函數:

voidNVIC_CoreReset(void)

{

__DSB();

//置位VECTRESET

SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) ?????|

(SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |

SCB_AIRCR_VECTRESET_Msk);

__DSB();

while(1);

}

匯編版函數:

__asm void NVIC_CoreReset_a(void)

{

LDR R0, =0xE000ED0C

LDR R1, =0x05FA0001 //置位VECTRESET

STR R1, [R0]

deadloop_Core

B deadloop_Core

}

內核主要注意:SCB_AIRCR_VECTRESET_Msk和LDR R1, =0x05FA0001,它是和系統復位唯一的區別。

2.NVIC_SysReset系統復位

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

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

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

C語言版函數:

void NVIC_SysReset(void)

{

__DSB();

SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) ?????|

(SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |

SCB_AIRCR_SYSRESETREQ_Msk);

__DSB();

while(1);

}

匯編版函數:

__asm void NVIC_SysReset_a(void)

{

LDR R0, =0xE000ED0C

LDR R1, =0x05FA0004

STR R1, [R0]

deadloop_Sys

B deadloop_Sys

}


細心的朋友可能會發現:

內核復位與系統源代碼和相近,差異在于SYSRESETREQ和SYSRESETREQ這兩位。

C語言版本的代碼和core_cm3.h中NVIC_SystemReset函數相似。對的這個函數就是系統復位函數,而我們的內核復位只是簡單修改了一下。

3.main函數應用

Main函數中主要以LED1和LED2兩個IO來說明。

LED1作為"標志燈": 上電"標志"置為高;

LED2作為指示燈:看從內核啟動改變狀態沒有。

請在main函數中應用不同的配置進行測試:

#if 0 /* 內核復位 */

NVIC_CoreReset();

// NVIC_CoreReset_a();

#else /* 系統復位 */

NVIC_SysReset();

// NVIC_SysReset_a();

#endif

Ⅴ下載

Cotrex-M3權威指南:

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

本文講解的源代碼工程(STM32F103ZE(Keil)_Reset):

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

提示:如果網盤鏈接失效,可以微信公眾號“底部菜單”查看更新鏈接。

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

    關注

    3

    文章

    1392

    瀏覽量

    40610
  • STM32
    +關注

    關注

    2277

    文章

    10951

    瀏覽量

    359229
  • 復位
    +關注

    關注

    0

    文章

    174

    瀏覽量

    24362
  • 定時器計數器

    關注

    0

    文章

    3

    瀏覽量

    1070
收藏 人收藏

    評論

    相關推薦

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

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

    FPGA復位的8種技巧

    在 FPGA 設計中,復位起到的是同步信號的作用,能夠將所有的存儲元件設置成已知狀態。在數字電路設計中,設計人員一般把全局復位作為一個外部引腳來實現,在加電的時候初始化設計。全局復位引腳與任何
    的頭像 發表于 11-16 10:18 ?591次閱讀
    FPGA<b class='flag-5'>復位</b>的8種技巧

    復位電路的設計問題

    前言 最近看advanced fpga 以及fpga設計實戰演練中有講到復位電路的設計,才知道復位電路有這么多的門道,而不是簡單的外界信號輸入系統復位。 流程: 1.同步
    的頭像 發表于 11-15 11:13 ?277次閱讀
    <b class='flag-5'>復位</b>電路的設計問題

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

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

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

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

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

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

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

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

    STM32復位電路用復位芯片和阻容復位電路區別

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

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

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

    JK觸發器的置位和復位有什么區別

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

    FPGA同步復位和異步復位

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

    示波器測量復位信號的原理和方法

    在電子工程領域,復位信號是確保系統穩定、可靠運行的關鍵因素之一。復位信號通常用于在系統出現故障或異常時,將系統恢復到初始狀態,以便重新開始工
    的頭像 發表于 05-17 17:14 ?1791次閱讀

    PDR_ON復位和NRST引腳復位,對STM32F407IG的影響有什么區別呢?

    新手請問大家在實際做工程的時候,有沒有用PDR_ON引腳做芯片復位呢? PDR_ON復位和 NRST引腳復位,對芯片的影響有什么區別呢? 謝謝大家。 PS:我用的是
    發表于 05-16 07:21

    STM32如何用HAL庫進行內核復位

    STM32如何用HAL庫進行內核復位 普通的系統復位函數如下: / ** 簡短的系統重置 詳細
    發表于 04-11 06:49

    STM32F103RET6外部復位引腳,無法復位是什么情況?

    STM32F103RET6 外部復位引腳,無法復位,是什么情況? P.S.復位電路沒有問題,可正常輸出復位信號
    發表于 03-28 09:13
    主站蜘蛛池模板: 亚洲AV无码国产精品午夜久久 | 精品熟女少妇AV久久免费A片 | 中文视频在线 | 国产精品免费小视频 | 67194成网页发布在线观看 | 美艳人妻在厨房翘着屁股 | 久久99国产精品蜜臀AV | 一品探花论坛 | 韩国成人理伦片免费播放 | 無码一区中文字幕少妇熟女H | 真实国产精品视频国产网 | 成人免费公开视频 | 国产精品A久久777777 | 免费看a毛片 | 嫩草欧美曰韩国产大片 | 国产精品久久久精品a级小说 | 国产精品线路一线路二 | 国产传媒精品1区2区3区 | 久久青青草原精品国产软件 | 久久久免费观看 | 国产麻豆精品传媒AV国产在线 | 嫩草影院未满十八岁禁止入内 | 极品内射少妇精品无码视频 | 成人a毛片久久免费播放 | 丰满的女友1在线观看 | 冈本视频黄页正版 | 狠狠婷婷综合久久久久久 | 国产精品久久精品 | 手机毛片在线观看 | 波多野结衣教师系列6 | 99久久精品国产高清一区二区 | 日日噜噜夜夜爽爽 | 美国一级大黄一片免费的网站 | 嗯啊…嗯np男男双性总受 | 51精品国产AV无码久久久密桃 | 259luxu高跟黑色丝袜系列 | 污文啊好棒棒啊好了 | 久久电影精品久久99久久 | 男女无遮挡吃奶gift动态图 | 国产91综合 | 欧美另类老女人 |