今天在写程序时,想把一个字符串常量存储在STM32的FLASH中,看了一会儿别人的例子程序,知道是用const这个关键字,但第一次没有成功。
前提:我用的是STM32F103ZE单片机,
-
FLASH的存储范围为:0x08000000~0x0807ffff,
-
RAM的存储范围:0x20000000~0x200007ff
失败例子:
#include.....
。。。。
int main(void)
{
u8 const c[]="somen";
while(1);
}
通过调试,查看c[]数组的存储位置为0x200*****的位置,常量仍旧处在RAM中。
成功的例子:
#include.....
u8 const c[]="somen";
int main(void)
{
while(1);
}
通过调试,可以发现c[]数组的存储位置为0x08******的位置,常量在FLASH中。