在使用IAR软件时,各种调试功能使用起来都挺好的,唯一感觉有缺陷的就是不能查看代码大小。不像keil那样代码编译后可以直接看到大小。那么在IAR中有没有办法可以查看到代码的大小呢?当然是可以的,最简单的方法就是通过map文件查看。

  什么是map文件呢?简单的说map文件就是代码在编译后,关于代码的各种信息描述的文本文件。比如哪些变量在哪个地址空间存储?每个函数的入口地址是啥?每个变量都占用了多大空间等,在map文件中都会有详细的描述。

  现在通过一个简单的例程来演示如何查看map文件。

  这是一个简单的LED闪烁代码,LED指示灯1秒钟闪烁一次。编译完文件之后,在工程目录Debug目录中的List目录中就会生成map文件。

  用记事本打开这个文件,可以看到里面好多信息。

  最开始是软件版本及工程最后的编译时间,接下是输出的文件和map文件路径,最后一部分是编译过程中的命令,在这个命令中可以看到编译时都连接了那些目标文件。

  接下来在文件的中间部分就可以看到每个目标文件的存储地址和大小。

  这一部分中就可以看到工程中都用到了哪些目标文件,同时它的地址和大小是多少。

  接下来就可以看到代码占用空间的详细情况了。

  • ro code :代码的存储区,编译器生成的机器指令,这些内容被存储到ROM区。
  • ro data :Read Only data,只读数据域,它指程序中用到的只读数据,这些数据被存储在ROM区,因而程序不能修改其内容。 C语言中const关键字定义的变量就是典型的RO-data。
  • rw data:Read Write data,可读写数据域,它指初始化为“非0值”的可读写数据,程序刚运行时,这些数据具有非0的初始值,且运行的时候它们会常驻在RAM区,因而应用程序可以修改其内容。
  • rw data(abs):这里的abs暂时还不知道是什么意思,也没有找到相关资料。

  代码的大小就是最底下四个数据之和,在map文件的最后面也可以看到。

  在文件最后面也列出来代码和数据分别占用的空间大小,将这四个数据加起来619+136+269+6=1030 也就是当前代码的大小是1030字节,也就是代码大小约1K左右。

  可以通过STVP烧写软件打开二进制文件查看代码大小

  代码的范围是8000到82F0,共752个字节,为什么这里的字节数比较少呢?因为还有一部分数据默认是0.数据0在这个界面上不能明确的看出结束位置。所以这里只能看到非0的数据。

  以后再调试代码的时候就可以通过map文件来查看代码的大小了,同样还可以借助map文件优化代码。这个在下一篇文章中说明。

IAR软件中查看代码大小相关推荐

  1. IAR软件中直接查看编译后代码大小

      在使用IAR软件编译代码时,编译后往往看不到编译后代码的大小情况.在调试程序的时候还是比较麻烦的.下面就总结两种最简单的方法在IAR编译器中查看代码大小. 通过输出的编译信息查看   IAR默认的 ...

  2. linux 文件大小_linux系统中查看目录大小的du命令常

    CentOS7.3学习笔记总结(四十六)-linux系统中查看目录大小的du命令常用方法 在windows系统中我们想查看目录或文件的大小,直接右键属性,并且还能显示别的属性,在linux系统中,一般 ...

  3. keil中如何查看代码大小

    在用keil编译完代码后,会生成编译信息 (1) Code(inc.Data) : 包含两部分,即代码和数据 - code,即程序代码部分 - inline data. For example, li ...

  4. 在服务器 和 虚拟机中 查看代码 samba source insight

    在服务器 或者 虚拟机中, 我们查看代码是不方便的,可以使用samba 和 source insight 分别来 同步代码 和 编辑代码 samba 安装 1.1 apt-get 安装 A.安装sam ...

  5. idea中修改代码大小设置

    修改代码大小 控制台字体大小 转载于:https://www.cnblogs.com/mzdljgz/p/11452644.html

  6. 如何在 Linux 中查看目录大小?

    这是一篇关于如何通过一些常用的命令,显示 CentOS 或 RedHat 中的 Linux 目录大小,以及哪些文件夹占用的空间最大的教程. 搜索当前的 CentOS 或 RedHat 文件夹 您可以使 ...

  7. iar软件中C语言跳出for循环,关于 IAR一些C语言扩展

    今天在阅读RF_Example_Code_v1.0中头文件cc430x613x.h时发现了几部分的疑问. 首先来看一下cc430x613x.h 中的3个#define的例子: #define DEFC ...

  8. oracle中查看pga大小,oracle调整sga、pga大小

    展开 修改sga大小 1-1查看当前sga大小 SQL> show parameter sga 1-2修改sga_max_size为24G SQL> alter system set sg ...

  9. %time、%timeit、%%time、%%timeit的区别(ipython中查看代码执行时间的魔法命令)

    1.%time.%timeit.%%time.%%timeit的比较 %time: 在行模式下,代码运行一次所花费的时间. %%time:在单元模式下,代码运行一次所花费的时间. %timeit: 在 ...

最新文章

  1. rhel6.9 yum安装mysql_在RHEL6.9上安装MySQL5.7
  2. js 中null,undefined区别
  3. Linux的vi命令
  4. CDH6 kafka如何彻底删除topic及数据
  5. Python爬虫扩展库BeautifulSoup4用法精要
  6. echart中线性渐变的应用
  7. 三角网导线平差实例_三角网闭合导线计算()
  8. 一篇文章带你认识数学建模中的图论模型
  9. 流程执行效果如何评估
  10. 【论文笔记】Neural Relation Extraction with Multi-lingual Attention
  11. 网上书城(搜索页,购物车)
  12. ref与$res的关系
  13. Python pyecharts地理数据可视化 绘制地理图表
  14. 服务器 控制台 的作用是,电脑中的MMC控制台的作用和用法是什么?
  15. 关于cuda的下载官网
  16. 高斯定理证明(HTML)
  17. Mysql查询数据之基本和多条件查询
  18. USB研究(二)U盘驱动前的初始化
  19. 总结--红蓝对抗中的蓝队。
  20. 蓝桥杯模板TemplatePart12:NE555定时器频率测量

热门文章

  1. UITableView 编辑和删除行
  2. 【转】Go Micro(2)——微服务工具箱
  3. linux服务器规格查看
  4. PHP生成zip压缩包
  5. Struts2结果页面配置(Result)
  6. spring@Transactional注解
  7. [leetcode]_Best Time to Buy and Sell Stock I II
  8. Delta-wave
  9. Qt中图像的显示与基本操作
  10. ORACLE 批量实例分析