在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 實戰(zhàn)經(jīng)驗 | STM32G071 從 standby 模式退出后的 SRAM 數(shù)據(jù)保留

      實戰(zhàn)經(jīng)驗 | STM32G071 從 standby 模式退出后的 SRAM 數(shù)據(jù)保留

      作者: 時間:2023-12-28 來源:STM32單片機 收藏

      01 問題的描述

      本文引用地址:http://www.biyoush.com/article/202312/454333.htm

      某客戶使用 芯片從 模式下喚醒,想要 的數(shù)據(jù)在退出 模式后得以保持。根據(jù)手冊的描述,配置了相應的比特位,但是發(fā)現(xiàn)數(shù)據(jù)仍然保持不了。

      02 問題的復現(xiàn)

      根據(jù)客戶的描述,以及 的最新版參考手冊 RM0444 發(fā)現(xiàn),在 模式下,可以通過設置 PWR_CR3 的 RRS 比特位去控制 的保持能力,相應的 API 接口函數(shù)為HAL_PWREx_EnableRetention()、HAL_PWREx_DisableSRAMRetention() ;

      圖片

      基于例程

      ......STM32CubeRepositorySTM32Cube_FW_G0_V1.6.1ProjectsNUCLEOG071RBExamplesPWRPWR_STANDBYEWARM 

      以及相應的 NUCLEO-G071 開發(fā)板,修改部分代碼,根據(jù) LED4 的閃爍頻率去判斷從 Standby 模式退出后,SARM 里面的數(shù)據(jù)是否能夠保持住。

      圖片

      03 問題的排查

      基于上述的配置,簡單的測試了一下,發(fā)現(xiàn)即使 HAL_PWREx_EnableSRAMRetention() 使能了,但是測試代碼中的 sram_magic_word 的值沒有保持住,顯示的是 LED4 的閃爍頻率為1s。

      究竟是什么原因?qū)е铝藬?shù)據(jù)沒有保持住呢,再次查看參考手冊,確定了只要使能 PWR_CR3的 RRS 比特位即能保持住,對比了 PWR_CR3 的 RRS 比特位的說明,在 standby 模式下,SRAM 的數(shù)據(jù)可以保持,但是當退出 standby 模式呢?

      圖片

      由于測試的是從 standby 模式退出,standby 模式退出后會進行 reset,該復位導致了 SRAM的數(shù)據(jù)被覆蓋或丟失?通過查閱資料,發(fā)現(xiàn)是編譯器的配置導致的。以 IAR 為例,查看其默認的腳本文件 icf;

      圖片

      也就是說,在程序執(zhí)行的時候,會將 readwrite 的數(shù)據(jù)進行自動的初始化,而具有.noint 性質(zhì)的塊則不初始化,所以這兒還需要將 SRAM 里面要保持的數(shù)據(jù)放置在.noinit 的 section 中。

      04 問題的解決

      知道原因之后,相應的措施也就明朗了,修改 icf 文件如下:

      圖片

      并將想要保持的 SRAM 中的數(shù)據(jù)前面加關鍵字__no_init :

      圖片

      再次下載程序,發(fā)現(xiàn) LED4 的閃爍頻率跟隨 RRS 比特位值的不同而不同,符合預期。另外在實現(xiàn)的過程中,需要說明兩點的是: 

      1、修改 icf 后,可以通過 map 文件查看,應如下文所示,如果發(fā)現(xiàn)“P2”mismatch 之類的提示,檢查下該 section 中的變量,如上面提到的 sram_magic_word,可能被編譯器優(yōu)化了,在map 中也搜索不到該名稱,則可以在實際的代碼中使用該變量進行一些運算或判斷,然后重新編譯即可解決。

      圖片

      2、當調(diào)試器連著 IAR 調(diào)試界面運行的時候,無論 RRS 的值設置為 0 或 1,G071 從standby 模式下退出后,SRAM 中的內(nèi)容均可以保持,如果需要驗證 RRS 的值的影響,則建議斷開調(diào)試器,讓程序 free-running ,可以通過比如 LED 的閃爍頻率去判斷結(jié)果。



      關鍵詞: STM32G071 standby SRAM

      評論


      相關推薦

      技術專區(qū)

      關閉