我正在使用
STM32L4R 并希望将 SRAM2 的数据保留配置为待机模式。
我对链接器文件做了以下更改:
- /* Highest address of the user mode stack */
- _estack = 0x10004000; /* end of RAM */
- /* Generate a link error if heap and stack don't fit into RAM */
- _Min_Heap_Size = 0x800; /* required amount of heap */
- _Min_Stack_Size = 0x800; /* required amount of stack */
- /* Specify the memory areas */
- MEMORY
- {
- RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 640K
- FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 2048K
- SRAM2 (rw) : ORIGIN = 0x10000000, LENGTH = 16K
- }
- [........]
- .data :
- {
- . = ALIGN(8);
- _sdata = .; /* create a global symbol at data start */
- *(.data) /* .data sections */
- *(.data*) /* .data* sections */
- . = ALIGN(8);
- _edata = .; /* define a global symbol at data end */
- } >SRAM2
如屏幕截图所示,数据实际上保存在 SRAM2 (0x10000000)
中,但计数器除外,它专门用
易失性 uint32_t 计数器 __attribute__((section(".sram2")));
重新启动程序后,其他所有内容都会重置。我究竟做错了什么?还是我必须自己手动将每个变量输入到 sram2?