ST意法半导体
直播中

淡淡的爱

12年用户 923经验值
私信 关注
[问答]

如何在STM32L4R-MCU待机模式下写入64 KB SRAM内存并再次读回它呢?

我目前正在使用 STM32L4R-MCU 并试图将其设置为待机状态。通过使用 LoRa,我不希望它一直请求 OTAA 命令加入网络,我试图在待机模式下使用我的 MCU 的 SRAM2 保留。谷歌搜索和浏览数据表,我只发现 64 KB SRAM 位于哪个地址,但我如何实际写入该内存并再次读回它?
我既没有找到应用说明,也没有找到示例代码。如果有人对这个话题有更多了解,我会很高兴。


回帖(1)

高文军

2022-12-26 16:06:10
我想我现在已经明白了。

对于任何想知道的人:
有一个 .ld.file,链接器在其中被告知应该将其数据保存在何处。例如,如果您想使用 SRAM2,则必须添加 RAM2。


  • MEMORY
  • {
  • RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 640K
  • FLASH (rx)      : ORIGIN = 0x8000000, LENGTH = 2048K
  • RAM2 (xrw)      : ORIGIN = 0x10000000, LENGTH = 64K
  • }
其次是


  •    .ram2 (NOLOAD):
  •   {
  •     _sram2 = .;
  •     *(.ram2*)
  •     . = ALIGN(4);
  •     _eram2 = .;
  •   } >RAM2
接下来是 SECTIONS 部分。
现在可以像这样在 SRAM2 中初始化数据:


  • volatile uint32_t Counter __attribute__((section(".ram2")));
  • volatile uint32_t test123[20] __attribute__((section(".ram2")));
等瞧:
我在 test123 中保存了 n³(n 从 0 到 19),并且故意重置了计数器。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分