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

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

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

復(fù)位那些小事—典型的軟復(fù)位流程

冬至配餃子 ? 來源:芯時代青年 ? 作者:尼德蘭的喵 ? 2023-12-04 13:46 ? 次閱讀

在聊到復(fù)位的時候總會區(qū)分兩個概念:硬復(fù)位和軟復(fù)位。

硬復(fù)位就是通常所說的復(fù)位,是通過硬件電路或者特殊的硬件信號來觸發(fā)的復(fù)位過程。當拉低外部復(fù)位信號時硬復(fù)位被觸發(fā),復(fù)位線會直接影響系統(tǒng)的硬件電路與寄存器,將系統(tǒng)的內(nèi)部狀態(tài)恢復(fù)到一個已知的初始狀態(tài)。

硬復(fù)位通常是由外部的控制電路或者特定的硬件引腳來觸發(fā),例如按下一個復(fù)位按鈕或者通過特定的電路邏輯條件。

軟復(fù)位是通過軟件的程序代碼或者寄存器配置等方式觸發(fā)的復(fù)位過程。當軟復(fù)位被觸發(fā)時,系統(tǒng)一般需要執(zhí)行特定的步驟來響應(yīng)軟復(fù)位需求,確認進入待復(fù)位狀態(tài)后才會進入復(fù)位流程,將系統(tǒng)的內(nèi)部狀態(tài)恢復(fù)到一個已知的初始狀態(tài)。軟復(fù)位通常是在程序執(zhí)行中的某個特定條件下發(fā)生,例如檢測到一個錯誤或者需要重新初始化系統(tǒng)時。

硬復(fù)位一般是整芯片甚至芯片組復(fù)位,這個過程可以說是比較簡單粗暴的。而軟復(fù)位一般是芯片的部分系統(tǒng)進行復(fù)位重啟,有時也稱為快速復(fù)位、動態(tài)復(fù)位、配置復(fù)位,大多是通過一系列的流程來完成的。

本篇中就聊一聊典型的系統(tǒng)軟復(fù)位流程。

1.觸發(fā)軟復(fù)位啟動條件。這一般是系統(tǒng)內(nèi)部或SOC出現(xiàn)了致命的錯誤比如任務(wù)執(zhí)行超時、總線數(shù)據(jù)錯誤或安全機制報錯等,上位的MCU或者CPU判斷需要對該系統(tǒng)進行軟復(fù)位操作以恢復(fù)功能;

2.停止下發(fā)任務(wù)。判斷需要對系統(tǒng)軟復(fù)位后,應(yīng)當從任務(wù)層停止下發(fā)新的任務(wù),避免系統(tǒng)錯誤進一步的蔓延影響其他進程;

3.下達軟復(fù)位請求。請求可能通過配置系統(tǒng)的寄存器或者從控制接口下發(fā)使能信號;

4.系統(tǒng)接收到軟復(fù)位的請求后,需要做出一系列的處理。這時一般有兩種方向選擇,一種是主動停止工作,比如停止執(zhí)行接下來的取指、在指令或者卷積層邊界停止進一步的計算;另一種是被動停止工作,也就是內(nèi)部邏輯不停止工作,而通過系統(tǒng)邊界的模塊響應(yīng)軟復(fù)位,進而對內(nèi)部通路進行阻塞或者假握手假接收等行為使內(nèi)部被動停止工作。

5.系統(tǒng)邊界的模塊監(jiān)聽所有通路,等待所有已經(jīng)發(fā)出的請求全部收回應(yīng)答(典型的比如AW請求收回Bresp,AR請求收回Rdata),這樣做的目的是避免本系統(tǒng)的復(fù)位對SOC或其他系統(tǒng)產(chǎn)生影響,也避免對解除復(fù)位后的本系統(tǒng)產(chǎn)生影響(如未收全,本系統(tǒng)復(fù)位解除后總線返回了一筆復(fù)位前的Bresp,那本系統(tǒng)直接就亂了);

6.邊界的模塊收全所有應(yīng)有的返回信息后,或者未能收全但是到達超時閾值后,系統(tǒng)進入待復(fù)位狀態(tài);

7.此時如果本系統(tǒng)仍然保留著訪問DDR和sram的備份通路,那么上位機可以通過配置寄存器去間接訪問內(nèi)存和寄存器進行保留現(xiàn)場。如果沒有規(guī)劃該功能,則略過這一步驟;

8.上位機配置復(fù)位保護寄存器使能復(fù)位保護電路,避免系統(tǒng)復(fù)位過程中有毛刺或者使能信號擴散到總線或其他系統(tǒng);

9.上位機配置對系統(tǒng)進行時鐘降配或者關(guān)斷時鐘等操作,這個是可選操作,一般來說如果復(fù)位保護做的比較嚴格,這里不對時鐘進行處理也沒關(guān)系;

10.配置復(fù)位或拉低系統(tǒng)的復(fù)位信號,持續(xù)一段時間,這個時間沒有太嚴格的要求,按毫秒計時也沒有關(guān)系,少的話也得幾十拍確保系統(tǒng)內(nèi)所有寄存器都完成了復(fù)位;

11.復(fù)位已經(jīng)完成,之后配置解復(fù)位或拉高系統(tǒng)的復(fù)位信號,解除系統(tǒng)的復(fù)位狀態(tài),之后等待一段時間等內(nèi)部電路穩(wěn)定下來;

12.配置時鐘恢復(fù)工作頻率或恢復(fù)時鐘,可選;

13.配置復(fù)位保護寄存器解除復(fù)位保護,恢復(fù)總線連接;

14.可以再等待一段時間后,重新下任務(wù)或恢復(fù)現(xiàn)場,重啟系統(tǒng)完成。

軟復(fù)位的流程沒有特別嚴格的規(guī)定,通常是根據(jù)芯片的需求而規(guī)劃,上面所述也只是經(jīng)驗之談。不過大抵都遵循停任務(wù) - 收應(yīng)答 - 斷連接 - 復(fù)位 - 解復(fù)位 - 重連接 - 下任務(wù)的思路。

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

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119201
  • DDR
    DDR
    +關(guān)注

    關(guān)注

    11

    文章

    697

    瀏覽量

    64934
  • 上位機
    +關(guān)注

    關(guān)注

    27

    文章

    927

    瀏覽量

    54550
  • 硬件電路
    +關(guān)注

    關(guān)注

    39

    文章

    238

    瀏覽量

    29114
  • SRAM存儲器
    +關(guān)注

    關(guān)注

    0

    文章

    88

    瀏覽量

    13243
收藏 人收藏

    評論

    相關(guān)推薦

    復(fù)位信號是什么意思?復(fù)位信號的作用?詳解Xilinx FPGA復(fù)位信號那些

    復(fù)位信號幾乎是除了時鐘信號外最常用的信號了,幾乎所有數(shù)字系統(tǒng)在上電的時候都會進行復(fù)位,這樣才能保持設(shè)計者確定該系統(tǒng)的系統(tǒng)模式的狀態(tài),以便于更好的進行電子設(shè)計,并且在任意時刻,確保使用者總能對電路系統(tǒng)進行復(fù)位,使電路從初始的狀態(tài)開
    的頭像 發(fā)表于 07-27 09:48 ?7434次閱讀
    <b class='flag-5'>復(fù)位</b>信號是什么意思?<b class='flag-5'>復(fù)位</b>信號的作用?詳解Xilinx FPGA<b class='flag-5'>復(fù)位</b>信號<b class='flag-5'>那些</b>事

    CXL系統(tǒng)啟動和復(fù)位流程概覽

    這三種復(fù)位被歸納為傳統(tǒng)(Conventional)復(fù)位。Function級復(fù)位和CXL復(fù)位不是傳統(tǒng)復(fù)位。
    的頭像 發(fā)表于 09-22 14:37 ?2597次閱讀
    CXL系統(tǒng)啟動和<b class='flag-5'>復(fù)位</b><b class='flag-5'>流程</b>概覽

    復(fù)位那些小事—系統(tǒng)解復(fù)位的特殊處理

    復(fù)位就是復(fù)位撤離,系統(tǒng)解復(fù)位就是復(fù)位結(jié)束了系統(tǒng)準備開始工作。
    的頭像 發(fā)表于 12-04 15:25 ?1227次閱讀
    <b class='flag-5'>復(fù)位</b><b class='flag-5'>那些小事</b>—系統(tǒng)解<b class='flag-5'>復(fù)位</b>的特殊處理

    復(fù)位電路沒有小事

    復(fù)位電路不知道該定位成是模擬電路合適數(shù)字電路,原因是功能和結(jié)構(gòu)太簡單了,好多人都不屑深入研究。而世上的事就是這樣,你認真研究它確實是不難,你要忽視它麻煩就大了。曾經(jīng)有一家國內(nèi)的設(shè)計公司(上市公司
    發(fā)表于 07-03 04:20

    復(fù)位電路無小事

    復(fù)位電路無小事,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 09-18 17:15 ?0次下載

    430怎么復(fù)位_430復(fù)位方法詳解

    最近在搞430的FLASH的自定義法(利用串口)程序燒寫,燒寫完成后斷電復(fù)位,reset按鍵就可以運行新的程序。但是和學長交流了一下,這種方法不夠好,希望有一種復(fù)位的方式。
    的頭像 發(fā)表于 05-20 10:04 ?6514次閱讀

    MCU復(fù)位原理詳解

    想要實現(xiàn)復(fù)位,先給VRCTKEY賦個0x05FA,再想SYSRESETEQ寫1即可實現(xiàn)復(fù)位。
    發(fā)表于 10-27 10:47 ?9193次閱讀

    如何使用C語言實現(xiàn)復(fù)位詳細資料說明

    本文檔的有內(nèi)容詳細介紹的是如何使用C語言實現(xiàn)復(fù)位詳細資料說明。
    發(fā)表于 06-14 17:44 ?1次下載
    如何使用C語言實現(xiàn)<b class='flag-5'>軟</b><b class='flag-5'>復(fù)位</b>詳細資料說明

    詳細講解同步后的復(fù)位是同步復(fù)位還是異步復(fù)位?

    針對異步復(fù)位、同步釋放,一直沒搞明白在使用同步化以后的復(fù)位信號時,到底是使用同步復(fù)位還是異步復(fù)位?
    的頭像 發(fā)表于 04-27 18:12 ?4518次閱讀
    詳細講解同步后的<b class='flag-5'>復(fù)位</b>是同步<b class='flag-5'>復(fù)位</b>還是異步<b class='flag-5'>復(fù)位</b>?

    STM32芯片的那些系統(tǒng)級復(fù)位功能

    我們知道,STM32芯片里有很多系統(tǒng)級的復(fù)位,比方上電復(fù)位、欠壓復(fù)位、看門狗復(fù)位、軟件復(fù)位、復(fù)位
    的頭像 發(fā)表于 10-19 09:06 ?4799次閱讀

    談?wù)?b class='flag-5'>復(fù)位那些

    復(fù)位信號幾乎是除了時鐘信號外最常用的信號了,幾乎所有數(shù)字系統(tǒng)在上電的時候都會進行復(fù)位,這樣才能保持設(shè)計者確定該系統(tǒng)的系統(tǒng)模式的狀態(tài),以便于更好的進行電子設(shè)計,并且在任意時刻,確保使用者總能對電路系統(tǒng)進行復(fù)位,使電路從初始的狀態(tài)開
    的頭像 發(fā)表于 06-02 15:11 ?1795次閱讀
    談?wù)?b class='flag-5'>復(fù)位</b><b class='flag-5'>那些</b>事

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

    內(nèi)核復(fù)位:它會使STM32內(nèi)核(Cortex-M)進行復(fù)位,而不會影響其外設(shè),如GPIO、TIM、USART、SPI等這些寄存器的復(fù)位。
    的頭像 發(fā)表于 08-01 17:21 ?4315次閱讀

    同步復(fù)位與異步復(fù)位的區(qū)別

    請簡述同步復(fù)位與異步復(fù)位的區(qū)別,說明兩種復(fù)位方式的優(yōu)缺點,并解釋“異步復(fù)位,同步釋放”。
    的頭像 發(fā)表于 08-14 11:49 ?6437次閱讀

    基于DWC_ether_qos的以太網(wǎng)驅(qū)動開發(fā)-復(fù)位介紹與問題案例

    一般模塊都會有復(fù)位的功能,復(fù)位在驅(qū)動編寫中很重要。一般初始化時執(zhí)行復(fù)位使得模塊進入確定的初
    的頭像 發(fā)表于 09-02 09:17 ?1291次閱讀
    基于DWC_ether_qos的以太網(wǎng)驅(qū)動開發(fā)-<b class='flag-5'>軟</b><b class='flag-5'>復(fù)位</b>介紹與問題案例

    如何排查GD32 MCU復(fù)位是由哪個復(fù)位源導致的?

    上期為大家講解了GD32 MCU復(fù)位包括電源復(fù)位和系統(tǒng)復(fù)位,其中系統(tǒng)復(fù)位還包括獨立看門狗復(fù)位、內(nèi)核
    的頭像 發(fā)表于 02-03 09:46 ?1484次閱讀
    如何排查GD32 MCU<b class='flag-5'>復(fù)位</b>是由哪個<b class='flag-5'>復(fù)位</b>源導致的?