我想在stm32上的FLASH存储器的特定位置存储一些变量,所以我改变了keil中的分散文件。但每当我检查映射文件时,该变量并不位于闪存中的真实位置。 我的分散文件:
LR_IROM1 0x08000000 0x00007800 { ; load region size_region
ER_IROM1 0x08000000 0x00007800 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
.ANY (+XO)
}
user_flash 0x08007800 0x00000800 {
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x00001000 { ; RW data
.ANY (+RW +ZI)
}
}
和我的变量:
__IO float EE_Myvariable __attribute__((section(".user_flash"))) = 21.0;
我该如何应对这个问题? 预先感谢
我承诺:
LR_IROM1 0x08000000 0x00007800 { ; load region size_region
ER_IROM1 0x08000000 0x00007800 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
.ANY (+XO)
}
RW_IRAM1 0x20000000 0x00001000 { ; RW data
.ANY (+RW +ZI)
}
}
LR_IROM2 0x08007800 0x00000800 {
My_flash 0x08007800 0x00000800 { ; load address = execution address
;.ANY (+RW)
*.o(.user_flash)
}
}
这确实有效