IAR编译信息分析

系统 2099 0

1、怎么设置可以查看单片的内存(消耗)使用状况?

IAR的菜单栏 -->Tools -->IDE Options -->Messages -->Show build messages选择 ALL

 

1. Tools->option->messages show build messages设置成all 

这样可以在编译后看到用了多少个RAM多少Code,中间每个文件使用情况也可以看得到。

2. Project->Options...(Alt-F7))的Linker->List中勾选Generate linker map file

这样可以生成map文件,这个就更详细了(需要什么自己勾选)。

3. Project->Options...(Alt-F7))的C/C++ compile ->List中勾选output list file

这样可以看到每个文件编译的细节的list文件,还可以看到反汇编(需要什么自己勾选)

 

二、编译信息

1、 下面什么意思

4 960 bytes of CODE  memory
4 150 bytes of DATA  memory
44 bytes of CONST memory

 

4 960 个字节的代码(占FLASH)

4150 个字节的变量数据(占RAM)
44 个字节的常量数据(占FLASH)

生成bin文件的大小= 4960+44

 

1、
9 486 bytes of CODE memory
  404 bytes of DATA memory (+ 36 absolute )
  520 bytes of CONST memory

 

1、的括号内表示内存的绝对使用量,对应你设的全局变量大小
2、表示共享的存储空间,和单片机的结构有关


 

 

2、提问:

  9 176 bytes of CODE  memory (+     30 bytes shared)
   568 bytes of CONST memory (+ 18 148 bytes shared)
   943 bytes of DATA  memory (+    114 bytes shared)

 

答:"+ 114 bytes shared"或linking后的"+114 bytes absolute"指的是您在程序中有144bytes 使用@ operator 或 #pragma location=operator 或__no_init volatile语法定义的数据。

也可以说是可以在汇编中定义的数据。举例:P1OUT在430头文件中就用到了上述语法,当您读写P1OUT时,编译器和链接器就认为您使用了一个上述sahred/absolute数据。   编译器和链接器并不能真正地辨认出什么是RAM什么是Flash,它们使用DATA(没有指定固定的数据)和CONST/CODE(有指定固定的数据)概念来工作。

 

原文:http://blog.sina.com.cn/s/blog_4c0cb1c00100vy5n.html

IAR编译信息分析


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论