STM32——获取Flash学习的空间占用

本文介绍了STM32F103C8T6芯片中Flash的使用方法,详细解释了如何通过Keil编译器获取代码、只读和可读写数据所占用的空间,并提供了实例帮助理解。

  这段时间使用STM32F103C8T6芯片做项目,要使用芯片中的Flash存储用户信息,其Flash有128K Bytes(其中64KB还是未检测,但是可用的),很大一部分用于存储程序代码以及相关的变量等,剩下的可以作为断电保存数据的存储,要知道什么位置可用,需要知道代码的所占用的空间大小。

  烧写到单片机所占用的空间,可以看编译结果的中的Program Size项获取,之前对Keil编辑后的Program Size比较困惑,它们代表了些什么,这回有了了解。

图1 存储模式示意

  • Code

代码占用空间,占用Flash空间;

  • RO-data (Read Only)

只读常量,如const类型的常量,也占用Flash空间;

  • RW-data (Read Write)

可读写数据,一般是全局变量,先要保存在Flash中,初始化后,再由Flash拷贝到RAM,占用Flash空间和RAM空间;

  • ZI-data

栈空间(Stack)及堆空间(Heap)所需的空间,申请的内存空间用于局部变量进行堆栈处理,只占RAM空间。

举例:

  Program Size: Code=22640 RO-data=2856 RW-data=1280 ZI-data=3464 (单位:字节)

  Flash size:Code + RO-data + RW-data=22640+2856+1280=26776字节;

  RAM size:RW-data + ZI-data=1280+3464=4744字节;

  知道了这些后,就可以合理安排Flash的空间了。

 

转载于:https://www.cnblogs.com/gaolab/p/9036854.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值