【IAR】设置和编译信息解析 程序运行耗时 内存分配MAP
(2011-11-27 23:39:26)转载▼
标签:杂谈 |
分类: 编译器 |
一、设置:
1、怎么设置可以查看单片的内存(消耗)使用状况?
IAR的菜单栏 -->Tools -->IDE Options -->Messages -->Show build messages选择 ALL
设置完后IAR点MAKE,没有error的话最后会在Message框显示代码的大小
(菜单栏-->View-->Maessge-->Build)
这样可以在编译后看到用了多少个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 4 44 |
4
4150
44
生成bin文件的大小=
1、
9 486 bytes of CODE memory
1、的括号内表示内存的绝对使用量,对应你设的全局变量大小
2、表示共享的存储空间,和单片机的结构有关
2、2011年5月提问:
答:"+ 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://zhidao.baidu.com/question/268793362.html
2012.2.20
软件仿真设置:Project————Options————Debugger————Driver选Simulator就可以了。
然后View——Regstrers 的CPU Regstrers的CYCLECOUNTER 的值!
2012.6.28 各函数运行速度比对
原文:http://www.iartools.com/Info_ArticleList_Show.asp?ArticleId=147
2、代码覆盖分析:
3、C-SPY可以在调试过程中随时显示整个调用链,跟踪显示当前调用函数内容,以方便调试和修改源代码中的错误。在VIEW-CALL STACK打开调用堆栈窗口其中显示的是程序调用过程中函数调用的列表。并将当前函数置顶。
4、增加调试功能
三、跳到函数、变量定义、Go to
一般IAR默认是不可以能过右键直接查找变量、函数的定义的。
方法1、
方法2、
在工程的C编译器选项里的预编译添加$TOOLKIT_DIR$\inc可以搞定。
深入剖析之通过IAR MAP文件查看目标文件内存分配
查看映象文件
检查project1.map文件,观察段是如何定义以及代码是怎样放置在存贮器中的。一个映象文件主要包含以下几点信息: