首页 > 编程语言 >Keil 工程在编译完之后,会有相应的程序所占用的空间提示信息解释

Keil 工程在编译完之后,会有相应的程序所占用的空间提示信息解释

时间:2024-10-21 08:59:11浏览次数:1  
标签:RW Keil Data 编译 Code 提示信息 RO data Size

一般 MCU 包含的存储空间有:片内 Flash 与片内 RAM,RAM 相当于内存,Flash 相当于硬盘。编译器会将一个程序分类为好几个部分,分别存储在 MCU 不同的存储区。

Keil 工程在编译完之后,会有相应的程序所占用的空间提示信息,如下所示:

linking...
Program Size: Code=48008 RO-data=5660 RW-data=604 ZI-data=2124
After Build - User command \#1: fromelf --bin.\\build\\rtthread-stm32.axf--output rtthread.bin
".\\build\\rtthread-stm32.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:07

上面提到的 Program Size 包含以下几个部分:

1)Code:代码段,存放程序的代码部分;

2)RO-data:只读数据段,存放程序中定义的常量;

3)RW-data:读写数据段,存放初始化为非 0 值的全局变量;

4)ZI-data:0 数据段,存放未初始化的全局变量及初始化为 0 的变量;

编译完工程会生成一个.map 的文件,该文件说明了各个函数占用的尺寸和地址,在文件的最后几行也说明了上面几个字段的关系:

Total RO Size (Code + RO Data) 53668 ( 52.41kB)
Total RW Size (RW Data + ZI Data) 2728 ( 2.66kB)
Total ROM Size (Code + RO Data + RW Data) 53780 ( 52.52kB)

1)RO Size 包含了 Code 及 RO-data,表示程序占用 Flash 空间的大小;

2)RW Size 包含了 RW-data 及 ZI-data,表示运行时占用的 RAM 的大小;

3)ROM Size 包含了 Code、RO-data 以及 RW-data,表示烧写程序所占用的 Flash 空间的大小;

标签:RW,Keil,Data,编译,Code,提示信息,RO,data,Size
From: https://www.cnblogs.com/YYZYCS/p/18488307

相关文章

  • openwifi编译步骤记录
    这边还是简单记一下步骤1、首先是下载openwifi-hwgitclone--recursivehttps://github.com/open-sdr/openwifi-hw2、配置vivado环境变量source/tools/Xilinx/Vivado/2021.1/settings64.sh3、在.bashrc里面配置加一些变量exportXILINX_DIR=/tools/XilinxexportBOARD_NA......
  • PbootCMS要怎么修改域名授权提示信息?
    问题描述当PBootCMS上传到服务器后,如果没有到官网获取域名授权码,访问时会提示未授权的相关信息。这对于给客户使用的场景来说,可能会显得不专业。官方提供了一种免费的解决方案,可以通过自定义提示信息来解决这一问题。解决方案创建 sn.html 文件在网站根目录下新建一个名......
  • 编译 tmux
    编译tmux下载源码:前往tmux/tmux下载源码包。解压并安装:./configure--prefix="$HOME/.local"make-j(nproc)makeinstall编译依赖项在配置tmux时可能会因缺少依赖项而编译失败。此时需要先编译依赖项。ncurses下载源码:前往GNUFTP服务器下载ncurses......
  • VM+ubuntu,编译huawei EC6109 SDK 报错,不知道啥原因
    环境:ubuntu14,内核3.13.0-24-generic源代码:https://kgithub.com/tegzwn/HiSTBLinuxV100R005C00SPC050报错:1、master/HiSTBLinuxV100R005C00SPC041B020/out/hi3798mv100/hi3798mdmo1g/obj/source/boot/fastboot/include/configs/export.shmake-C/mnt/hgfs/STB/hi3798mv100-......
  • 编译Android14遇到lunch不显示target的问题
    参考Android系统源码编译https://xdaforums.com/t/lunch-failed.4665348/https://www.huigll.com/cannot-display-lunch-menu/现象android-14.0.0_r74$.build/envsetup.shandroid-14.0.0_r74$lunchYou'rebuildingonLinuxWarning:Cannotdisplaylunchmenu.......
  • 【原创】RK3588/RK3568/RK3562平台 IgH EthercAT主站编译安装
    目录igh主站编译安装说明一、配置内核自带网卡驱动编译为模块1.内核配置编译内核编译内核模块二、交叉编译EtherCAT主站1.普通linux或preempt-rt1.1配置1.2编译1.3安装到TF卡根目录2.xenomai2.1交叉编译xenomai库2.2配置2.3编译2.4安装到TF卡根目录四、安装目录打......
  • VTK9.3.1在Windows10+VS2022+Qt 5.14.2环境下编译安装以及VTK应用于QT
    文章目录概要搭建编译环境编译源代码VisualStudio2022+Qt使用VTK概要本文主要介绍VTK9.3.1如何在Windows10上使用VS2022和QT进行编译安装。搭建编译环境先从VTK官网下载VTK9.3.1的源码,VTK下载地址我们可以按照官方推荐的编译方式进行编译,首先设置三个文件夹......
  • Ubuntu 16.04 编译安装Python 2.7.18
    安装python2.7.18(注)使用aptinstallpython安装的版本是2.7.10,该版本对部分项目存在兼容性问题,因此需要手动编译安装安装python编译环境sudoaptinstallpython-devpkg-configlibreadline-devlibc6-devlibncursesw5-devbuild-essentialgdbpkg-configlibbz2-devlibffi-......
  • keil 快捷键设置,开发加速的小技巧(个人设置)
    点击扳手,选择shortcutkey进入快捷键设置页面跳到上一个光标的位置跳到下一个光标的位置跳转到定义(没办法实现组合鼠标按键,F12又太远,不过和QQ的截图热键冲突,需要修改QQ的快捷键,各有取舍吧)跳转到声明......
  • linux上编译运行c程序
    创建test文件,进入该目录后创建hello.c文件使用vimhello.c命令编辑hello.c文件编写完成后保存该文件,使用gcc进行编译并生成可执行程序在终端中执行输入./hello执行相关代码......