内部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,可以用于其他用途。

参考
野火:48. 读写内部FLASH

posted @ 2022-03-02 16:56  中庭之园  阅读(2759)  评论(0编辑  收藏  举报