IAR-EW430开发工具使用指南

editor的头像
editor 发布于:周五, 07/29/2016 - 14:56 ,关键词:

► IAR EW430总体介绍

瑞典IAR System公司推出的IAR EW软件是一种非常有效的嵌入式系统开发工具,它使用户能够充分有效地开发并管理嵌入式应用项目,其界面类似于MS Visual C++,可以在Windows平台上运行,功能十分完善。包含有源程序文件编辑器,项目管理器,源程序调试器等,并且为C/C++编译器,汇编器,连接定位器等提供了单一而灵活的开发环境。源级浏览器功能可以快速浏览源文件;还提供了对第三方工具软件的接口,允许启动用户指定的应用程序。

IAR EW适用于开发基于8位,16位以及32位的处理器的嵌入式系统,其具有同一界面,用户可以针对多种不同的目标处理器,在相同的集成开发环境中进行基于不同CPU嵌入式系统应用程序的开发。另外IAR的链接定位器(XLINK)可以输出多种格式的目标文件,使用户可以采用第三方软件进行仿真调试。

针对TI MSP430,IAR也有相应的IAR EW430软件。其具有上面所说的所有IAR软件共有功能,另外还有所有MSP430也包括MSP430X设备的配置文档,C-SPY调试器支持FET (TI's Flash Emulation Tool )驱动,并支持实时操作系统相关信息的调试,还提供MSP430的项目例子以及相关的代码模板等。

► 现给以演示来具体说明其特性和使用:

♦ 1、在安装好的文件夹下面开打IAR_KickStartCard应用工程,右击鼠标选择OPTIONS会弹出如图1所示,在CATEGORY中选择GENERAL OPTION在右边点击Target,从下面的Device右边的浏览器中可以看见IAR EW430所支持的所有常见的具体设备,在选择好具体的设备后IAR软件会自动的在后台调用相应的I/O头文件,以及设备描述文件(C-SPY为了能对不同的器件的中断系统进行正确仿真,必须了解当前使用器件关于中断的详细信息,这类信息由设备描述文件.ddf文件提供)。


图1

♦ 2、编译器:在CATEGORY中点击C/C++ COMPILER,IAR的编译器提供了DLIB库,支持符合ANSI C标准的C/C++编程语言以及多字节参数和MISRA标准等。从图2中可见其的选择。(MISRA (The Motor Industry Software Reliability Association 汽车工业软件可靠性联会)所谓的MISRA C Coding Standard,这一标准中包括了127条C语言编码标准,通常认为,如果能够完全遵守这些标准,则你的C代码是易读、可靠、可移植和易于维护的)


图2

Language选项区域用于设置希望采用的编程语言,如果您选择Automatic单选按钮,则根据源程序文件的扩展名自动选择。如扩展名为 .C时作为C源程序进行编译。Enable multibyte support允许在C/C++源程序文件中使用多字节符号。图3中可以看见MISRA C选项卡,单击ALL后选择所有MISRA C规则校验模块当然也可以增加删除MISAR C规则校验模块,其作用就是按照MISRA C标准来检查校验您的代码。


图3

IAR的编译器支持对代码大小和运行速度的多层次优化,在Optimizations选择区域可选择优化方法有SIZE和SPEED两种,前者以代码大小进行优化,后者以运行速度进行优化。另外还有NONE不优化对调试支持最好,LOW低级优化,MEDIUM中级优化和HIGH高级优化4种不同的优化级别。根据您所选择的优化方法和优化级别,Enabled transformations框将自动选择不同的优化项目。另外,针对一个项目中不同的源文件也可以选择不同的具体优化代码方式。具体见图4

IAR提供了特殊性质的扩展关键字,可以直接在源程序中使用这些关键字,而不用用汇编语言写任何的函数而达到操作硬件设备命令。如monitor用于定义监视函数,其在执行期间禁止中断,从而允许完成操作等。除以上功能外IAR编译器还支持内嵌汇编语言,符合IEEE标准的32位和64位浮点运算等。

♦ 3、调试器:C-SPY调试器完全集成在IAR EW软件中,通过不同驱动DRIVER实现与目标系统通信和仿真控制。MSP430软件的C-SPY调试器提供了2种类型的驱动:纯软件仿真驱动和硬件仿真器驱动。纯软件仿真驱动可以实现在没有实际硬件的条件下,采用软件模拟方式进行用户程序的仿真也就是C-SPY提供的Simulator方式;硬件仿真器驱动为C-SPY调试器和专用硬件仿真器(例如J-LINK)提供接口,实现对目标系统的实时在线仿真调试。在调试过程中可以编辑代码不用退出调试环境,并且可以在调试之前在代码中直接设置断点。选择Project—Debug后进入调试状态见下图5,可以选择您感兴趣的窗口。例如打开Register窗口,还可以选择不同的寄存器见下图6


图5


图6

还可以看不同的存储器,通过AUTO看当前语句相关变量和表达式的值,LOCAL查看当前运行函数的局部变量和函数参数值。如图7 C-SPY还提供了函数刨析功能和代码覆盖功能,用于对应用程序进行分析以确定其运行的瓶颈问题(注意FET仿真驱动没有代码覆盖功能),函数刨析功能可以找出程序运行过程中对一个给定激发信号耗时最长的函数,从而使用户能够集中精力研究如何更好地对这些函数进行优化。例如在编译时选择速度优化模式,或者将函数移到能更高效寻址的存储器中运行等。在VIEW中选择PROFILING开打刨析记录。启动程序全速运行,当运行到一个断点或程序结束时,窗口中将显示对当年程序所有函数运行的刨析记录结果,如图8:


图7


图8

当一个函数由不含自身源代码的函数调用时,例如库函数,则没有耗时测试。当要查看与该函数有关的调用和被调用详细信息时,可以看刨析细节窗口。

代码覆盖分析用于帮助用户确认是否所有程序代码都得到执行,这对于鉴别程序代码中是否有不能被执行的部分特别有用。打开VIEW-CODE COVERAGE窗口,如图9显示的是当前代码覆盖分析状态报告,即哪部分代码在分析开始后至少执行了一次。IAR C/C++编译器在应用程序每条语句以及每个函数调用处以STEP POINT步点形式生成详细的步进信息,以百分比统计了所有已经执行的布点数量,并列出了所有还没有执行的布点等。


图9

在程序调试时往往希望能对函数的调用过程进行跟踪,C-SPY可以在调试过程中随时显示整个调用链,跟踪显示当前调用函数内容,以方便调试和修改源代码中的错误。在VIEW-CALL STACK打开调用堆栈窗口其中显示的是程序调用过程中函数调用的列表。并将当前函数置顶。见图10

C-SPY共有4种单步运行命令:Step Over,step Into,Step out和 Next Statement等。Step Into是单步运行无论是否在同一个函数内,对于Step Over是在同一函数中将运行到下一布点。Step out命令立即执行完整个函数调用并返回到调用话句的下一条语句。

另外IAR软件的输出格式也支持其他的调试器如下图您可以选择您用的调试器可读格式供30多种工业标准格式供选择如UBROF,ELE/DWARF,COFF,Inter-extended,Motorola等见下图:


图11
围观 1040