008_STM32之_keil编译内存大小解析
Program Size: Code=28784 RO-data=6480 RW-data=60 ZI-data=3900 的含义
1. Code: 程序所占用的FLASH大小,存储在FLASH.
2. RO-data: Read-only-data,程序定义的常量,存储在FLASH中。
3. RW-data:Read-write-data,已经被初始化的变量,存储在SRAM中。
4. ZI-data:Zero-Init-data,未被初始化的变量,存储在SRAM中。
简单的说就是在烧写的时候是FLASH中的被占用的空间为:
ROM(Flash) size = Code+RO-data+RW-data;
上面代码大小 = 28784 + 6480 + 60 = 35324
= 35324/1024 = 34.5K
程序运行的时候,芯片内部RAM使用的空间为:
RAM size = RW-data+ZI-data
上面代码RAM = 60 + 3900 = 3960
= 3960/1024 = 3.9K
从上面的分析之后我们得到了此程序占用的内存
ROM = 34.5K
RAM = 3.9K
然后我们从百度百科搜索得STM32C8T6的
ROM容量:64KB (64K x 8)
RAM容量:20K x 8
以下是STM32系列大中小型容量的大小和地址范围,假如我们使用内部flash的话就必须要查看地址的大小了,在下一篇中我们将说明如何使用STM32内部flash
008_STM32之_keil编译内存大小解析的更多相关文章
- C语言结构体占用空间内存大小解析
结构体的数据类型的有点我们就不啰嗦了,直接来看相同数据结构体的几种书写的格式吧. 格式一: 01.struct tagPhone 02.{ 03. char A; 04. int ...
- linux下内存大小、起始地址的解析与修改
在实际的工作中,由于产品型号的不同,经常需要调整linux所管理的内存的大小,而内核在启动阶段,会两次去解析从uboot传递过来的关于内存的信息,具体如下: 一.解析从uboot传递过来的tag(在p ...
- JVM内存区域解析
引言 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创建和销毁的时间.有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的 ...
- struct和class内存大小的计算
以下均是在VS2017下的结果 结构体内存大小的计算: 用例一: #include<stdio.h> union ss { int a; char b; }; struct MyStruc ...
- JAVA内存溢出解析(转)
JAVA内存溢出解析(转) 核心提示:原因有很多种,比如: 1.数据量过于庞大:死循环 :静态变量和静态方法过多:递归:无法确定是否被引用的对象: 2.虚拟机不回收内存(内存泄漏): 说白了就是程序运 ...
- 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小
原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...
- 获取JAVA对象占用的内存大小
介绍两种获取JAVA对象内存大小的方法. 第一种:Instrumentation 简介: 使用java.lang.instrument 的Instrumentation来获取一个对象的内存大小.利用I ...
- 【转载】Android Studio 设置内存大小及原理
http://www.cnblogs.com/justinzhang/p/4274985.html http://tsroad.lofter.com/post/376316_69363ae Andro ...
- 修改linux共享内存大小
这是实际linux系统显示的实际数据: beijibing@bjb-desktop:/proc/sys/kernel$ cat shmmax 33554432 beijibing@bjb-deskt ...
随机推荐
- Thinking In Java 4th Chap7 复用类
复用代码的两种方法:组合和继承 组合方法:(新类中产生现有类的对象) 没什么好说的,就是调用别类的对象而已 值得一提的是一个特殊方法:toString()当需要一个String却只有对象时能够自动调用 ...
- StarUML3.1.0版(2019.3.6)生成Java代码
下载官网 StarUML3.1.0(2019.3.6) 步骤 打开StarUML: 点击菜单栏的Tools: 列表中如果有Java,说明已经有这个生成Java代码的扩展了: 列表里如果没有Java: ...
- Linux系统下如何优雅地关闭Java进程?
资料出处: http://www.sohu.com/a/329564560_700886 https://www.cnblogs.com/nuccch/p/10903162.html 前言 Linux ...
- Dubbo#编译动态扩展类
这篇排版有问题 后面修改....**** 以ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();为例 - ...
- 创客课堂——Scratch的操作界面
大家好,这里是蓝精灵创客公益课堂,我是蓝老师 上期我们了解了scratch软件进行了简单的了解,很多朋友都已经按照上期方法下载安装好了软件. 那么今天蓝老师就和大家一起认识下Scratch的操作界面及 ...
- android 蓝牙连接端(客户端)封装
0.权限 AndroidManifest.xml <uses-permission android:name="android.permission.BLUETOOTH"/ ...
- python 练习:函数1
习题: 定义一个方法 func,该func可以引入任意多的整型参数,结果返回其中最大与最小的值. def func(**args): return max(args),min(args) 定义一个方法 ...
- JavaBean 详细
一.什么是JavaBean? JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参的构造函数 属性必须私有化. 私有化的属性必须通过public类型的方 ...
- Ubuntu下双显示器设定
自8.10后的版本,系统自带了xrandr工具,可以很好的实现双显示器.配置与使用如下: 介绍 X Windows 中有一个显示分辨率的概念,在默认情况下,这个显示分辨率为 max*max ,m ...
- 程序员与数据库打交道的JDBC知识概要
1.JDBC全称:Java database connectivity,Java数据库连接. (1) JDBC是一种用于执行SQL语句的Java API,为多种关系数据库提供多种统 ...