一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

STM32G071從standby模式退出后的SRAM數(shù)據(jù)保留

STM32單片機(jī) ? 來源:STM32單片機(jī) ? 2023-12-20 09:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

01問題的描述

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

02問題的復(fù)現(xiàn)

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

63553056-9ed7-11ee-8b88-92fbcf53809c.png

基于例程

......STM32CubeRepositorySTM32Cube_FW_G0_V1.6.1ProjectsNUCLEOG071RBExamplesPWRPWR_STANDBYEWARM

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

63647b1a-9ed7-11ee-8b88-92fbcf53809c.png

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ù)可以保持,但是當(dāng)退出 standby 模式呢?

63687e7c-9ed7-11ee-8b88-92fbcf53809c.png

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

6379c9b6-9ed7-11ee-8b88-92fbcf53809c.png

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

04問題的解決

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

638ed84c-9ed7-11ee-8b88-92fbcf53809c.png

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

63a72500-9ed7-11ee-8b88-92fbcf53809c.png

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

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

63aed7d2-9ed7-11ee-8b88-92fbcf53809c.png

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

審核編輯:湯梓紅

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

    關(guān)注

    460

    文章

    52520

    瀏覽量

    441059
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9005

    瀏覽量

    153769
  • sram
    +關(guān)注

    關(guān)注

    6

    文章

    786

    瀏覽量

    115977
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    365041
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70758

原文標(biāo)題:實(shí)戰(zhàn)經(jīng)驗(yàn) | STM32G071 從 standby 模式退出后的 SRAM 數(shù)據(jù)保留

文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    請問STM32G071如何通過DWT實(shí)現(xiàn)us精準(zhǔn)定時(shí)?

    STM32G071怎樣通過DWT實(shí)現(xiàn)us精準(zhǔn)定時(shí)?,各位大佬有實(shí)現(xiàn)的嗎?
    發(fā)表于 03-20 06:59

    STM32G071G070在未燒寫程序時(shí),MCU上電其PB7腳輸出的是個(gè)高電平,為什么?

    STM32G071G070在未燒寫程序時(shí),MCU上電其PB7腳輸出的是個(gè)高電平,因?yàn)榇四_接的是一個(gè)蜂鳴器,MCU上電一直在響,燒寫程序蜂鳴器工作邏輯正常,PB7腳并不是jlink或SW的調(diào)試引腳(調(diào)試引腳MCU硬件內(nèi)部有上拉
    發(fā)表于 03-29 08:13

    嵌入式系統(tǒng)的核心器件:STM32G071開發(fā)事項(xiàng)

    STM32G071的PD0,PD2作為外部中斷使用,外部接10K上拉電阻拉到3.3V。外部設(shè)備被觸發(fā)電平為低電平,正常無信號(hào)?!締栴}】在以上背景下,按道理外部設(shè)備正常時(shí)(未觸發(fā)中斷),IO口輸入電平應(yīng)該是
    發(fā)表于 12-06 09:39

    時(shí)鐘小部件是不是不適用于STM32G071應(yīng)用程序模板呢

    你好 !對于我的 TouchGFX 設(shè)計(jì)器,數(shù)字小部件和模擬時(shí)鐘小部件不適用于 STM32G071 應(yīng)用程序模板(至少在模擬器中,我無法與板確認(rèn))。當(dāng)我說它不起作用時(shí),我的意思是它顯示得很好,但值(或動(dòng)畫)永遠(yuǎn)不會(huì)更新。小部件被凍結(jié)為原始值。
    發(fā)表于 12-02 11:02

    沒有VREF+ 輸入的STM32G071設(shè)備的參考是什么?

    在我的 NUCLEO-G071RB 板上,我能夠使用 CubeMX 設(shè)置 VREFBUF 模式以使用 VREF+ 輸入引腳、內(nèi)部 2.5V 或 2.048V 作為 ADC 和 DAC 的參考。但是我
    發(fā)表于 12-05 06:57

    如何為stm32g071板開發(fā)一種Keil環(huán)境呢?

    我正在為 stm32g071 核板使用 Keil 開發(fā)環(huán)境。我應(yīng)該選擇哪種設(shè)備?stm32g071rbIx 還是 stm32g071rbTx? 我如何決定哪一個(gè)適合我?
    發(fā)表于 01-04 08:11

    STM32G071 NUCLEO使用flash >30%時(shí)位圖渲染不正確怎么解決?

    的項(xiàng)目,選擇 STM32G071 演示加載一些額外的圖像到項(xiàng)目(拆分的 .gif 文件發(fā)出的一系列 40 png 總大?。?50kb連接板生成代碼和閃存目標(biāo)結(jié)果:GUI 的一些圖像丟失(黑線),例如
    發(fā)表于 01-09 07:32

    如何用STM32G071輸出比較計(jì)算1KHz頻率?

    我有 NUCLEO-G071RB 板。如何用STM32G071輸出比較計(jì)算1KHz頻率?我的系統(tǒng)時(shí)鐘頻率是 64 MHz 。 --
    發(fā)表于 01-10 07:36

    如何連接STM32G071進(jìn)行USB Type-C PD充電?

    和 D- 以允許 5V 負(fù)載以更高的功率(DCP)充電?我們的計(jì)劃是自主 USB PD 充電 IC 切換到 STM32G071。
    發(fā)表于 01-10 07:45

    STM32G071GB HSE引腳可用嗎?

    我計(jì)劃在 STM32G071GB(UFQFPN28 - 28 引腳封裝)上使用 HSE第 41 頁上的數(shù)據(jù)STM32G071 確實(shí)明確說明 HSE 引腳是否可用于小型封裝(28 引腳)數(shù)據(jù)
    發(fā)表于 02-08 07:34

    MCU退出standby模式時(shí)歷史數(shù)據(jù)會(huì)丟失嗎?

    MCU退出standby模式時(shí)歷史數(shù)據(jù)會(huì)丟失嗎?喚醒=重置?S32K3是否有專門的待機(jī)模式數(shù)據(jù)
    發(fā)表于 05-10 06:06

    一文知道STM32G071 PD0 PD2引腳使用注意事項(xiàng)

    STM32G071的PD0,PD2作為外部中斷使用,外部接10K上拉電阻拉到3.3V。外部設(shè)備被觸發(fā)電平變?yōu)榈碗娖?,平常保持高電平信?hào)。
    的頭像 發(fā)表于 07-21 10:30 ?1.6w次閱讀
    一文知道<b class='flag-5'>STM32G071</b> PD0 PD2引腳使用注意事項(xiàng)

    STM32G071 PD0 PD2引腳使用注意事項(xiàng)

    STM32G071的PD0,PD2作為外部中斷使用,外部接10K上拉電阻拉到3.3V。外部設(shè)備被觸發(fā)電平變?yōu)榈碗娖?,平常保持高電平信?hào)。
    發(fā)表于 02-10 10:27 ?1次下載
    <b class='flag-5'>STM32G071</b> PD0 PD2引腳使用注意事項(xiàng)

    STM32G071最小系統(tǒng)板原理圖與PCb源文件

    STM32G071最小系統(tǒng)板原理圖與PCb源文件
    發(fā)表于 09-26 14:20 ?0次下載

    DS12232_STM32G071x8,STM32G071xB單片機(jī)數(shù)據(jù)手冊

    DS12232_STM32G071x8,STM32G071xB單片機(jī)數(shù)據(jù)手冊
    發(fā)表于 11-23 08:35 ?1次下載
    DS12232_<b class='flag-5'>STM32G071</b>x8,<b class='flag-5'>STM32G071</b>xB單片機(jī)<b class='flag-5'>數(shù)據(jù)</b>手冊