IAR软件使用教材.docx
《IAR软件使用教材.docx》由会员分享,可在线阅读,更多相关《IAR软件使用教材.docx(15页珍藏版)》请在冰豆网上搜索。
IAR软件使用教材
IAR软件使用教材
第二章软件开发工具介绍
本章主要针对实验平台开发过程中用到的软件的使用方法做简要的介绍。
实验平台用到的开发软件为IAREmbeddedWorkbenchfor
430(以下简称IAREW430)。
IARSystems是全球领先的嵌入式系统开发工具和服务的供应商。
公司成立于1983年,迄今32年,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,包括:
带有C/C++编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。
这里介绍的IAREW430软件提供了工程管理、程序编译、代码下载调试等所有功能。
2.1IAREW430软件的安装
IAREW430软件可在IAR官网下载,也可以通过XX或者google找到下载地址。
这里以5.502版本为例,安装步骤具体如下:
(1)点击运行EW430-EV_web-5502.exe;
(2)如图选择,点击Next;
(3)继续点击Next;
(4)继续点击Next;
(5)如上图选择,点击Next;
(6)在上述步骤中Name、Company可以自己随便填写,License
需要用到注册机。
点击IARkegenPartA.exe。
(7)选择EmbeddedWorkbenchForMSP430v5.5后,点击
Generate,会得到License和Licensekey;
(8)将License复制到第(5)步骤中License的地方,点Next;
(9)将注册机中得到的Licensekey复制粘贴到Licensekey栏,
点击Next;
(10)选择Complete,点击Next;
(11)选择合适的安装路径,点击Next;
(12)点击Next;
(13)点击Install,等待安装完成即可。
2.2IAREW430软件的使用
在正确完成IAREW430安装之后,就可以使用它进行编程。
下面简单地介绍下如何用IAREW430新建一个工程。
(1)点击IAREmbeddedWorkbench图标,运行软件;
(2)先新建一个工作空间(Workspace),File->New->Workspace;
(3)创建工程,Project->CreateNewProject…;
(4)按下图选择,点击OK;
(5)选择一个存放工程的文件夹,并给工程命名,点击保存,
注意工程名不要包含中文;
(6)在创建完工程之后,就可以在右边的编辑框中进行编程;
(7)在对工程进行编译之前需要对工程进行设置,在左边工作空间的工程名上右键,点击Option;
(8)需要选择正确的器件,这里以MSP430F5438A为例,点击GeneralOptions,在Device中点击,MSP430x5xxFamily->MSP430F5438A;
(9)点击Debugger->FETDebugger,然后点击OK;
(10)保存工作空间,点击saveall,在文件名中填上合适的工作空间名称,注意不要包含中文,选择用一个工作空间包含一个工程这种简单的操作方式,可以将工作空间的名称与工程名称取成一致。
以上步骤完成了创建新工程,并进行正确配置的任务。
在完成以上步骤之后,可以进行代码编辑。
在完成代码编辑之后,需要进行编译,生成,运行操作,主要用到以下几个控件。
进行编译,编译通过点击生成,以上步骤都没有出现点击
错误之后就可以运行。
出现以下界面。
除了调试程序流程之外,程序员在排错过程中还会需要查看各种变量和寄存器的值,以确定程序运行中间结果是否正确。
在IAREW430调试状态下,View菜单提供了功能丰富的查看功能。
(1)在西安查看变量。
只要程序处于暂停状态,将鼠标停在源代码任何一个变量上2s不动,就会自动显示该变量的值。
这是一种简单便捷的查看方法,但每一次只能查看一个变量,并且不能更改变量值。
(2)通过菜单View->Watch打开观察窗。
这是最常见的功能之一。
在Expression栏内输入变量名或表达式,在Value栏可以看到变量或表达式的值。
一个观察窗可以同时察看多个变量的值,且通过在Value栏中键入数据,能更改变量值。
用鼠标右键还可以切换数据的显示格式(如十进制、二进制、字符等)。
(3)通过菜单View->Register打开寄存器窗。
可以查看单片机内部各个模块的控制寄存器。
MSP430单片机内部的寄存器较多,寄存器窗口已经按照模块将其分类,以方便察看。
类似于观察窗,只要是科协的寄存器,都可以通过直接输入新数值来改变寄存器值。
(4)通过菜单View->Disassembly打开反汇编窗。
它将C语言生成的机器码重新翻译回汇编语言,供有经验的程序员调试用。
一条C语言可能对应一条以上的汇编语言,在打开反汇编窗口后,但不执行和跟踪执行每次执行一条汇编语句而不再是一条C语句。
(5)通过菜单View->CallStack打开调用关系窗。
可查看程序执行到当前位置所经历的函数路径。
(6)通过菜单View->Stack打开堆栈窗。
可以看到当前堆栈空
间使用情况。
(7)通过菜单View->Memory打开内存窗。
可以看到内存中数据存放的秦光。
MSP430单片机属于冯?
诺依曼结构,数据空间和程序空间统一编址。
所以在内存窗也可以查看Flash内代码或数据情况。
通过对上述调试、查看功能的综合运用,能够组合出强大的排错能力。
对于初学者来说,复杂问题的排错可能像瞎子摸象,没有目的得乱找,比较吃力。
换成经验丰富的程序员,也行两三步就能发现错误。
排错方法是一个需要不断练习和积累经验的过程。
对于新手,以下的几个基本方法是普遍适用的:
(1)包围法。
将程序划成若干段,打开观察窗,监视可疑变量或中间结果,用“断点”或“运行到光标处”工具检验各段程序运行的结果是否正确,逐步缩小问题范围,最后可以用单步、跟踪工具找到问题。
(2)极限法。
对于某些偶尔出现或周期出现的问题,很可能是某些处于溢出边缘,或者在判断语句中将“>=”和“>”混淆之类的习惯性错误。
利用变量观察窗,改变变量值,尽可能取极限情况,试验每个函数是否工作正常,逐步缩小错误范围最终找到问题。
(3)陷阱法。
当怀疑系统偶尔出现某种不应出现的状态时,或
者怀疑某变量偶尔出现了不应出现的值时,可以用一个if语句判断该状态的出现,在后面跟一条空操作语句_NOP();并在空语句处设置断点。
在出现这种状态时,被断点捕捉,此后可以打开观察窗,查看各变量,看哪些可疑,分析错误来源。
(4)穷举法。
当怀疑某个函数有可能在某些特殊的输入情况下产生错误的结果,可以用一个for循环对富哦有可能输入进行尝试,并设置错误陷阱,看哪些输入会造成错误,然后用观察窗的变量赋值功能专门产生错误输入情况,最后用跟踪工具找出错误来源。
(5)对比法。
自己写的程序无法正常执行,恰巧手头有可参考的代码;或者以前写的程序正常,现在写的去突然不能用了;甚至写了一段新程序后,前面已经调试通过的代码却突然失灵。
遇到此类情况可以分别运行两个程序,通过Register窗口或Watch窗查看并记录下相关寄存器和变量的值,二者对比,找到设置错误的变量或寄存器,再跟踪出错原因,最终排除错误。