您好,欢迎来到知库网。
搜索
您的当前位置:首页IAR -arm 入门教程

IAR -arm 入门教程

来源:知库网
IAR 使用说明

关于文档(初版):

1.主要是为了给IAR的绝对新手作参考用

2.emot制件,由 Zigbee & IAR 学习小组 保持修订权 3.希望用IAR朋友能将它修订完善

4.任何人可无偿转载、传播本文档,无须申请许可,但请保留文档来源及标志 5.如无重大升级,请沿用主版本号 版本 版本号 1.00 1.01 制作时间 2008/7/27 2010/8/19 制定人/修改人 emot Emot 说明 初版(仅供新手参考) 增加 下载程序(第四章) 在线调试程序(第五章) 序:

其实IAR和keil区别也没有多大,不过很多人就是怕(当初我也怕)。怕什么呢,怕学会了,真的就是害怕学习的心理让新手觉得IAR是个不好用的或者说“还不会用的”一个工具吧。我也是一个刚毕业的小子,如果说得不妥,还请大家来点砖头,好让小组筑高起来。 (Zigbee & IAR 学习小组地址是http://group.ednchina.com/673 )

初版我将会说明以下3个问题,IAR的安装、第一个IAR工程的建立和工作编译。这是我写的第一个使用说明,不足的以后补充吧。

一、 IAR软件安装图解

1.打开IAR软件安装包进入安装界面

打开软件开发包

软件安装界面

2.按照提示步骤执行,一直到授权页面,输入序列号,IAR中有两层序列号,所以要输入两组序列号。

输入第一组序列号

输入第二组序列号

3.选择安装路径(最好默认,不默认也不影响使用)

路径选择页面

修改路径

4.选择全部安装(Full)

选择全部安装

5.按提示知道安装完成。

安装完成页面

二、新建第一个IAR工程

用IAR首先要新建的是工作区,而不是工程。在工作区里再建立工程,一个工作区里似乎也不能建多个工程(我试过,但没成功,不知道IAR里提出workspace的概念是为什么?) 要不打IAR的help来看,说清楚也是头痛的事,先知道有要在工作空间里建工程就对了。

新建IAR工作空间,首先是菜单File里选择Open再选择Workspace,为方便说明再遇到菜单我就直接说成File-Open-Workspace这样了。看了下面图上的红圈就知道是怎么回事了。

2-1

接着就会看到一片空白。这时就是新的“办公区”了。

2-2

有了工作空间就可以建立工程了。

菜单Project-Create New Project。点了之后出现下面这个对话框。从这里就算是正式说事了。

2-3

上面图中有个Tool Chain:8051(就要标题下面,很明显的)这里选的是芯片的类型,不IAR有很多很多专用的环境,比如ARM的,430的,等。这里只有8051,相当于没得选。它的下面有个Project templates(工程模板),然后是asm,c++,c,我只认识这3项,说的意思就是选择用户使用的开发语言,我的话选C。展开C前面的+号,显示如下图(上个图的局部)

2-4

用你的鼠标点下main之后再点OK(就是图2-3最下方的那个OK了)。 新建工程就剩下最后一步了,保存。

2-5

大文件名后面填个名字保存。提醒下各位,在关闭IAR时或关闭IAR空间时,还会提示要求保存工作空间。别一不小心关完了。 IAR工作空间文件后辍是.eww。

IAR工程的后辍名是.ewp。 eww和ewp文件都会关联到IAR,不过eww文件才能正确的自动打,而ewp文件必是先打开IAR(打开时已经自动建立了一个新的工作空间,如果已经打开一个工作空间,则必须先新建一个工作空间,这才和必须在工作空间里编辑工程不矛盾),再导入工程才可用,这样太麻烦了,还是保存eww文件来得方便。

三、第一个IAR项目

估且叫它为项目吧。主要想跟大家说下IAR的设置,然后完成代码的编译。就像keil里编译工程要设置一样,IAR也要设置。

打开设置界面很简单。Alr+F7快捷键打开就行了。在菜单里的位置是Project-Options。还可以在工程名字上用右键打开。我喜欢第三种,但是这里我不想截图了,自己看着办吧。

打开的设置界面如是:

2-6

对应图2-6左边几个选项,我要说的有General Options,C/C++ Compiler,Debugger这几项。 对于General Options来说不新图,看上面就行了。主要要改支的地方就一个,Derivative这里,默认的是plain,这里把它改成CC1110。 再来看要说的第二项C/C++ Compiler,

2-7

小心看了,上面划了红框作标注的。

再看最后一个选项Debugger,

2-8

重要的地方我用红框框住了,这里呢有几个选项,我比较常用就两个Simulator,Chipcon,前一个在写程序时(没用仿真器和1110模块)用,后一个在调试(有硬件)时候用。你看哪一个选项跟你手上的实情相符?

接着的工作就是写代码,我这里用了一个成都无线龙的小工程作演示就是了,难得写。

………………(省略了复制代码的过程)

菜单Project-Make,就会得到下图所示的效果——没有警告和错误。

2-9

原则上还应该讲一讲如何把程序下载到单片机,如何得到hex文件等等,不过今天太累了,就写到这里吧。

四、下载程序

(以TI的CC1110为例) 在编译正确以后,就需要将程序下载到MCU运行,下载程序一板需要的工具有下载器,目标板。我手上有SRF04EB仿真器和CC1110模块。先写一个编译通过的程序,然后在工程选项(Project->Option...)里作如下设置:

4-1

左列选Debugger,在右边Setup->Driver区域选择Texas Instruments,单击\"OK\"确定,完成IAR Embedded Workbench IDE的设置。接着要进行仿真器的连接,用USB线将PC和仿真器相边,再用10pin排线将仿真器与CC1110模块相连,在仿真器上按一次复位键,然后在菜单Project里点Debug,也可以使用工具栏里的菜单,同见下图:

4-2

图中右上角红框中的按钮就是Debug按钮,单击可将程序下载到CC1110模块。接着可以看到下载成功的界面。请记本单提及的按钮名称,请读者记好它们的名字。

4-3

此时界面出现了新的工具条,如图中左上角所示,最右边一个是退出仿真模式,退出IDE与仿真器的连接。这里还要介绍它左边的另外8个按钮,为接下来叙述调试作准备,这8个按钮要在IDE与仿真器处于连接时才可见(可用)。左起,1-复位,在IDE与仿真器连接的时候,用此按钮将程序指针(PC)指向程序开始处,2-停止,图中是灰包的,在程序运行

时方可用,它可以使用正在运行的程序停下来,3-单句执行,程序停止时,单击本按钮可让程序向前执行一条语句,4-进入语句内执行,如进入一个函数体里执行,在汇编级向前执行一条指令,5-运行至本函数结束,停止于上一层函数体内,6-单句,作用和3相似,但又不同,具体可参考(EM8051_UserGuide.pdf),7-执行到光标所在行,8-全速运行,在设置了断点处停下。

五、在线调试程序

在线高度程序前应该使用IAR下载程序,下载程序的步骤见于第四章,下载成功后的界面见4-3,在IAR里常见的调试手段有设置断点、查看(修改)寄存器值和变量值,我们将上一单用的小工程修改,增加一个变量,然后用来作为本程序的例子。

程序清单: //IAR示范用例

/*----------------------------------头文件----------------------------------*/ #include \"iocc1110.h\"

/*----------------------------------本地函数----------------------------------*/ void halWait(unsigned char wait);

//程序入口

void main( void ) {

unsigned char i;

P1DIR |= 0X03; //P10,P11输出,假定这两个IO接了LED P1 = 0xff; //高电平关灯

while(1) {

P1 ^= 0X01; //P10所接LED取反 for (i = 0; i < 100; i++) //延时200ms {

halWait(1); //23行 halWait(1); } } }

//ms延时函数

void halWait(unsigned char wait)

{

unsigned long largeWait;

if(wait == 0) {return;}

largeWait = ((unsigned short) (wait << 7)); largeWait += 59*wait;

largeWait = (largeWait >> (CLKCON & 0x07)); while(largeWait--);

return; }

在第23行设置断点,设置断点有4种方法, 设置断点前请先将光标定位到要设断点的行,法一用菜单Edit->ToggleBreakpoint, 法二单击Debug左边第一个红色按钮,法三在代码上右键选Toggle Breakpoint(code),法四在代码行首再左的灰色位置双击鼠标左键。

然后单击Debug下载程序,下载后保持连接关系,然后在单击全速运行(按键名称,详见第四章),程序将会停止在断点处,当程序停止运行时,在IDE中可以查看诸多信息。

在代码编辑窗口的右边依次是反汇编窗口,变量窗口,寄存器窗口,下方则是内存窗口。用户从这此信息里去发现错误。

同时可以在窗口里改变变量值、寄存器值、内存的任意byte的数据,甚至IO的输出,当然在改之前用户要明白数据的意义。

可以在菜单栏里View里调出这些窗口,常用窗口有Breakpoints,Memory,Debug

log,Disassemble,Locals,Register,Watch,Auto,它们都只在调试状态下可见。

六、工程设置

工程设置分两个部分来介绍,前一部分是共性的,后一部分以CC1110为例,告诉读者一般要为芯片设置些哪些参数。

这里的设置总是要在左边选择大类,图中左边反色显示的即为选择项,下文不再说明。 对于工程共性设置来说,通过要指定头文件路径和编译开关,对于头文件路径来说有两表示相对路径的变量需要说明$PROJ_DIR$和$TOOLKIT_DIR$它们分别指工程所在目录(.ewp文件所在目录)和IAR给的头文件路径(..\\inc\\)。 而XDIR\\..\\代表XDIR文件夹的上一层目录。定义编译开关和设置文件文件路径在同一个选项卡上。

6-1

另一个通过需要设置的地方是堆栈大小。见下图中红色区域。

6-2

芯片特性设置包含了xcl文件,仿真用的模型等。开发中不能忽略!

6-3

6-4

6-5

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- zicool.com 版权所有 湘ICP备2023022495号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务