RM新时代网站-首页

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

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

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

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

聚沃科技 ? 2024-03-01 09:32 ? 次閱讀

在使用MCU時,通常大家默認MCU復位時RAM會被復位清零,那實際MCU復位時RAM是什么狀態(tài)?如何讓mcu復位時RAM保持不變呢?

MCU復位有電源復位、Standby復位、內(nèi)核復位、看門狗復位、引腳復位等。

wKgaomXhL92AaWoqAABZqTRwhlo190.png

其中內(nèi)部會有掉電動作的復位有電源復位和Standby復位,由于內(nèi)部電路有掉電所以這些復位RAM是無法保持的,RAM會處于隨機值狀態(tài),實際也不是0值。其他復位由于不掉電,本質(zhì)上是不會直接復位RAM的。

那為什么一般執(zhí)行了軟件復位和看門狗復位后RAM會復位,沒有初始化的變量值變成0呢?實際上是因為編譯器自動生成的RAM初始化代碼在MCU啟動后進入main函數(shù)前完成的,這些函數(shù)我們通過查看編譯后的map文件可以找到他們蹤跡。

wKgZomXhL-KAMdhGAAAP0Z9AXz0828.png

Keil為例,編譯后輸出信息里會看到RW-DATA和ZI-DATA,其中ZI-DATA就是沒有給定初始化值或初始化值給定為0的全局數(shù)據(jù)。

打開工程設置,在RAM/IRAM的Memory配置里有一個NOINIT的勾選,勾選后就可以配置為不初始化屬性,編譯器將不對這個區(qū)域的全局變量進行初始化賦值。

wKgaomXhL-eAF17YAAAd4VEdbLE446.png

如果我們有希望復位后還能保持的RAM變量可以定義在配置了NOINIT的RAM區(qū)域中。

除了直接在工程配置里修改,如果自行編寫鏈接文件,也可以添加NOINIT字段來進行配置。

wKgaomXhL-uAFtsmAABU44uuHCw154.png

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

    關注

    6035

    文章

    44554

    瀏覽量

    634635
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17123

    瀏覽量

    350984
  • 嵌入式
    +關注

    關注

    5082

    文章

    19104

    瀏覽量

    304807
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1368

    瀏覽量

    114641
收藏 人收藏

    評論

    相關推薦

    請問復位引腳保持低邏輯觸發(fā)MCU復位需要多長時間?

    復位引腳保持低邏輯觸發(fā)MCU復位需要多長時間?
    發(fā)表于 12-23 06:58

    CH32V103復位如何保持變量?

    CH32V103復位如何保持變量,只有上電才清零. 原來用stm32f103可以設置 __attribute__((unused, section(".noinit")))改用 CH32V103 后, 每次
    發(fā)表于 06-15 06:13

    ARM SOC芯片當其熱復位時其系統(tǒng)內(nèi)存RAM中的原數(shù)據(jù)是否繼續(xù)保持不變

    請教:ARM SOC芯片(如手機SOC芯片)系統(tǒng),當其熱復位時,其系統(tǒng)內(nèi)存RAM中的原數(shù)據(jù)是否繼續(xù)保持不變?并且可被熱復位后新啟動的程序繼續(xù)
    發(fā)表于 08-02 14:11

    ARM SOC芯片系統(tǒng)當其熱復位時,其系統(tǒng)內(nèi)存RAM中的原數(shù)據(jù)是否繼續(xù)保持不變?

    請教:ARM SOC芯片(如手機SOC芯片)系統(tǒng),當其熱復位時,其系統(tǒng)內(nèi)存RAM中的原數(shù)據(jù)是否繼續(xù)保持不變?并且可被熱復位后新啟動的程序繼續(xù)
    發(fā)表于 09-06 11:19

    如何設置STM32單片機非初始化數(shù)據(jù)變量不被零初始化

    一些產(chǎn)品,當系統(tǒng)復位后(非上電復位),可能要求保持復位RAM中的數(shù)據(jù),用來快速恢復現(xiàn)場,或者
    發(fā)表于 01-02 15:56 ?8319次閱讀
    如何設置STM32單片機非初始化<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>變量</b>不被零初始化

    哪些因素導致MCU復位

    在調(diào)試MCU時,經(jīng)常會遇到復位的情況。要找到復位的原因,我們就需要了解到有哪些因素導致MCU復位
    的頭像 發(fā)表于 11-10 16:32 ?1w次閱讀
    哪些因素<b class='flag-5'>會</b>導致<b class='flag-5'>MCU</b><b class='flag-5'>復位</b>

    PKD01:帶復位保持模式的單片峰值檢測器過時數(shù)據(jù)

    PKD01:帶復位保持模式的單片峰值檢測器過時數(shù)據(jù)
    發(fā)表于 04-22 18:59 ?6次下載
    PKD01:帶<b class='flag-5'>復位</b><b class='flag-5'>保持</b>模式的單片峰值檢測器過時<b class='flag-5'>數(shù)據(jù)</b>表

    PKD01:帶復位保持模式的單片峰值檢測器數(shù)據(jù)

    PKD01:帶復位保持模式的單片峰值檢測器數(shù)據(jù)
    發(fā)表于 04-27 12:59 ?8次下載
    PKD01:帶<b class='flag-5'>復位</b><b class='flag-5'>保持</b>模式的單片峰值檢測器<b class='flag-5'>數(shù)據(jù)</b>表

    華大MCU如何實現(xiàn)軟件復位

    產(chǎn)品在設計中某些狀態(tài)下需要MCU進行復位,華大MCU包含了7個復位信號來源,每個復位信號都可以讓 CPU 重新運行,絕大多數(shù)寄存器會被
    發(fā)表于 10-12 11:24 ?1973次閱讀

    MCU復位筆記

    MCU復位的作用及機制復位電路的作用在上電或復位過程中,控制CPU的復位狀態(tài):這段時間內(nèi)讓CPU保持
    發(fā)表于 11-01 16:25 ?9次下載
    <b class='flag-5'>MCU</b><b class='flag-5'>復位</b>筆記

    初始化mcu程序選用32k_MCU有多少種復位因素

    在調(diào)試MCU時,經(jīng)常會遇到復位的情況。要找到復位的原因,我們就需要了解到有哪些因素導致MCU復位
    發(fā)表于 12-05 10:36 ?6次下載
    初始化<b class='flag-5'>mcu</b>程序選用32k_<b class='flag-5'>MCU</b>有多少種<b class='flag-5'>復位</b>因素

    MCU復位電路知多少?

    MCU復位電路知多少?
    的頭像 發(fā)表于 10-17 18:02 ?1211次閱讀
    <b class='flag-5'>MCU</b><b class='flag-5'>復位</b>電路知多少?

    GD32 MCU電源復位和系統(tǒng)復位有什么區(qū)別

    GD32 MCU復位分為電源復位和系統(tǒng)復位,電源復位又稱為冷復位,相較于系統(tǒng)
    的頭像 發(fā)表于 02-02 09:37 ?1495次閱讀
    GD32 <b class='flag-5'>MCU</b>電源<b class='flag-5'>復位</b>和系統(tǒng)<b class='flag-5'>復位</b>有什么區(qū)別

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

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