编辑: yyy888555 | 2019-07-09 |
5 开发软件IAR使用方法 2.5.1 新建一个工程 新建一个工程 选择 Empty project 默认配置,单击 0K 弹出保存对话框 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 这个时候我们在桌面上建立一个名为 project 的文件夹,输入项目的文件名,并将项目也取 名为"project"将此文件保存在 project 文件夹中,会产生一个 ewp 后缀的文件. 保存工程,弹出保存工程对话框 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 输入工程文件名,单击保存退出,系统将产生一个eww为后缀的文件 这样,我们就建立了IAR的一个工程文件,接下来,我们对这个工程加入一些特有的配置. 打开工程选项 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 工程选项页面 工程选项页面中需要设置很多必要的参数,下面针对 CC2430 我们一起来配置这些参数. 2.5.2 参数设置 1. General Options设置 在General Options->Target 选项中 Derivative 选择为 CC2430,如图所示. PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 找到 Chipcon 文件夹 选择需要的芯片 在General Options->Target 选项中 Data model 选择为 Large,如图所示. PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 在General Options->Target 选项中 Calling cinvention 选择为 XDATA,如图所示. 在General Options->Target 选项中 Stack/heap 中的堆栈大小做适当修改,如图所示. PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 修改堆栈 2.C/C++ Compiler设置 在C/C++ Compile->Preprocessor选项中有两个很重要的选项,它们分别是Include paths和Defined symbols. Include paths表示在工程中包含文件的路径, Defined symbols表示在工程中 的宏定义. PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 1) 在定义包含文件路径的文本框中,定义包含文件的路径有两种很重要的语法,一是 $TOOLKIT_DIR$,这个语法表示包含文件的路径在IAR安装路径的8051文件夹下,也 就是说如果IAR安装在C盘中,哪么它就表示C:\Program Files\IAR Systems\Embedded Workbench 4.05 Evaluation version\8051这个路径.二是$PROJ_DIR$,这个语法表示 包含文件的路径在工程文件中,也就是和eww文件和ewp文件相同的目录.我们刚此建 立的project项目 中,如 果使用了 这个语 言,哪么 就表示 现在这个 文件指 向了 C:\Documents and Settings\Administrator\桌面\project这个文件夹. 和这两个语言配合使用的还有两个很重要的符号,这就是"\.."和"\文件夹名". \..:表示返回上一级文件夹 \文件夹名:表示进入名为"文件夹名"的文件夹. 我们来具体看两个例子. $TOOLKIT_DIR$\inc\ : 这句话的意思是包含文件指向C:\Program Files\IAR Systems\Embedded Workbench 4.05 Evaluation version\8051\inc. $PROJ_DIR$\..\Source:这句话的意思是包含文件指向工程目录的上一级目录中的 Source文件夹中.例如:假设我们的工程放在D:\project\IAR中,哪么$PROJ_DIR$\..\就 将路径指向了D:\project中,再执行\Source,就表示将路径指向了D:\project\Source中. 继续回到我们的工程,下面我们通过上面的方法设定一些必要的路径.如下图所示,在 图中的,有一个包含在工程中的include文件夹,这个文件夹需要自己在工程文件中创建, 这里面放置的是这个工程的h文件, 我们先将它设置在这里, inc中存放了CC2430的h文件clib PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 中有很多常用的h文件. 2) 在宏定义文件的文本框中,是用于用户自定义的一些宏定义,他的功能和#define相似, 在具体应用中多做位条件编译使用,在这里就不多讲,在后面的应用中,会根据具体的 使用给出使用方法. 3.linker设置 Linker->Extra Options中是用于包含一些必要的外部选项的, 这里定义了各个设备的特殊功 能选项,是一个用户自定义选项,在后面的应用中,会根据具体的使用给出使用方法. 地PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 库函数添加 在Linker->Config中linker command file选择lnk51ew_cc2430.xcl. PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 4.Debugger设置 在Debugger->Setup中Driver项中选择Chipcon. PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 这个我们对于整个项目的基本设置就完成了.现在开始我们第一个项目开发. 2.5.3第一个项目 1.新建一个C文件,按图示步骤执行 新建一个文件 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 保存文件 输入文件名,点击保存如果是C文件请务必后缀,否则会以文本文件存档. PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 创建一个文件组 输入文件组名 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 加入文件 选择新建的C文件 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 文件已经加入工程中,双击打开文件 加入第一个代码,这个代码的意思是将P1口设置为输出,将P1口置0,无线龙模块和开发板中有小灯在 P1口上,当执行这个代码的时候,小灯会点亮. 在实际的使用中如果IAR的工程路径有中文路径,有可能在调试的时候,设置断点的时候会不可见, 所以我们将建立的工程拷贝到磁盘根目录中,这个我们将工程拷贝到D盘根目录.然后打开工程执行下面 的步骤. PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 通过"make"编译,也可以通过Rebuild All全部编译,用make只会编译修改过的文件 编译后只要没有错误就可以使用了,一般警告我们可以放过 在编译没有错误后,就可以下载程序了,点击Debug,就现在程序了,下载程序后,软件进入在线仿真模 式. PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 在仿真模式中, 可以对这个文件设置断点, 断点的设置方法是首先选择需要设置断点的行, 然后单击Toggle Breakpoint设置断点. 设置好以后,这行代码会变为红色,这样就表示断点设置已经完成. 然后执行全速运行,当执行到断点出会停止在断点处. 然后双击P1DIR,单击右键,选择Add to Watch或者Quick Watch我们这里选择Add to Watch. PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 这个步骤的作用是查看这个寄存器中的值,如果是一个变量的话,就是查看一个变量的值.该值在Watch 中可以看到.(请放大图片观看) 2.5.4 建立自己的模块设备 在上面的介绍中,大家对IAR的使用方法已经有了一定的认识,但是在一个项目中,尤 其是无线项目中,涉及到的设备不会仅仅只有一个,如在zigbee设备中的协调器、路由器和 终端, 虽然设备不相同但它们的功能和协议栈底层却基本相同, 所以在里面只需要定义些条 件编译就可以设定好,如果将每一个设备都重新建立一个工程的话,这样寄浪费空间,代码 也很混乱,所以我们就需要使用IAR的模块设备功能(自定义的一个名称,不准确请大家指 正). 我们同样通过上面的例子来说明这个功能的使用方法. 首先修改工程的代码, 在这里我们要实现两个设备在一个工程中实现不同的功能, 两个 模块的名称分别定义为:Blind_LED和Open_LED.实现的功能是闪烁小灯和打开小灯.将PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn Project工程的frist.c文件中的主函数修改为下面的代码. void main(void) { P1DIR = 0xFF;