内部Flash读写——STM32F103RCT6
运行添加Flash读写前的程序,通过.map文件查看程序占用了Flash多少空间。
=========================================================
Memory Map of the image //存储分布映像
Image Entry point : 0x08000131
/*程序ROM加载空间*/
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000017a8, Max: 0x00080000, ABSOLUTE)
/*程序ROM执行空间*/
Execution Region ER_IROM1 (Base: 0x08000000, Size: 0x0000177c, Max: 0x00080000, ABSOLUTE)
/*地址分布列表*/
Base Addr Size Type Attr Idx E Section Name Object
0x08000000 0x00000130 Data RO 3 RESET startup_stm32f10x_hd.o
0x08000130 0x00000000 Code RO 479 * .ARM.Collect$$$$00000000 mc_w.l(entry.o)
0x08000130 0x00000004 Code RO 742 .ARM.Collect$$$$00000001 mc_w.l(entry2.o)
/*...此处省略大部分内容*/
0x0800173a 0x00000022 Code RO 490 i._printf_core mc_w.l(printfb.o)
0x0800175c 0x00000020 Data RO 782 Region$$Table anon$$obj.o
加载空间:CODE + RO(const变量或字符串常量)+ RW-data已初始化的数据
执行空间:CODE + RO
因为上电后,RW-data已初始化的数据被从Flash搬运到了RAM,所以执行空间会略小
以加载空间为依据,Size: 0x000017a8 = 6056B < 6KB ,查阅《STM32F10xxx闪存编程参考手册》可知,F103RCT6的Flash为256KB,属于大容量产品,其Flash的一页大小为2K,所以仅使用前3页,页0~页2,便可以存储程序,剩余的部分,即页3~页127,可以用于其他用途。