选择 Project 菜单下的Options 配置与 CC2430 相关的选项。(快捷键Alt+F7)
1、General
Options选项,按下图配置Target标签,选择Code model 和Data model,以及其它参数。
a、单击 Derivative information 栏右边的按钮,
选择程序安装位置如这里是IARSystems\EmbeddedWorkbench4.05 Evaluation
version\8051\config\derivatives\chip-con 下的文件CC2430.i51。
b、Data Pointer 标签,如下图所示,选择数据指针数1 个,16 位。
c、Stack/Heap 标签,如图下图所示,改变XDATA 栈大小到0x1FF。
2、单击 Options 中右边框架内的Linker 选项,配置相关的选项。
a、Output 标签,选做余中 Override default 可以在下面的文本框中更改输出文件名。如果要用 C-SPY
进行
调试,选中 format 下面的 Debug information for C-SPY
b、Config 标签,如下图所示,单击 Linker command file
栏文本框右边的按钮,选择正确的连接命令文
件,如表所示。
3、单击Options 中右边框架内的Debugger 选项,配置相关的选项。在Setup 标签按下图所示设置。
在 Device Description file 选择CC2430.ddf 文件,其位置纯慧滚在程序安装文件夹下如
C:\Program Files\IAR Systems\Embedded Workbench 4.05 Evaluation
version\8051\
Config\derivatives\chipcon 。
最后按下“ok”保存设置。
4、便于记忆,总结下:3+2+1=OK
General Options选项:Target标签、Data Pointer 标签、Stack/Heap
标签;(3个)
Linker 选项:Output 标签、Config 标签;(2个)
Debugger 选项:Setup 标碧消签;(1个)
OK了!
一、生成一个新项目要使用IAR进行STM32嵌入式系统开发,必须从建立一个项目(project)开始,下面以在E:\下建立一个名为Example的项目为例介绍。1. 创建项目目录、复制公共文件(1)在E盘下创建名为的Example文件夹,即项目根目录为E:\Example。(2)在项目根目录下建立一个EWARMv5文件夹用于存放项目文件、工作空间文件和项目配置相关文首梁棚件。(3)解压标准外设驱动文件库(stm32f10x_stdperiph_lib_V3.1.2.zip),将其中的“Libraries”文件夹复制到Example目录下。(4)复制标准外设驱动库目录Project\Template下的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h三个文件到Example文件夹下。main.c可以不用复制,我们自己写。复制标准外设驱动库目录Project\Template\EWARMv5下的stm32f10x_flash.icf、stm32f10x_flash_extsram.icf、stm32f10x_nor.icf和stm32f10x_ram.icf到Example\EWARMv5文件夹下。复制好的目录如图1所示。图1. Example文件夹下的文件2. 创建新的工作空间嵌入式系统开发大都是面向项目(Project)的,需要建立渣厅Project来管理项目开发。IAR EWRAM又是基于工作空间(Workspace)的集成开发环境,Project必须放在工作空间里面,所以我们首先应该建立工作空间。一个工作空间里面可以放多个项目。开始?程序?IAR Systems?IAR Embedded Workbench,进入IDE环境。File ?New?Workspace。这样工作空间就建好了,但是这个工作空间里面还没有项目,所以还不能保存,下面将在这个工作空间里面建立新项目。3. 创建新项目在上面第2步已经建立好的工作空间里创建新项目。Project?Create New Project。d出“Create New Project”对话框,“Tool Chain”选择ARM,“Project Template”选择Empty project模板,这样所有的文件都由用户自己来写。点击OK,d出“另存为…”对话框,选择我们刚刚建好的Example目录下的EWARMv5文件夹下,然后输入工程名 ,这里我输入Template,然后点击保存。这样一个名为Template的IAR EWARM项目就建好了,下面我们添加一些文件,然后再修改一些参数,使得这个项目真正地能够使用。4. 添加文件到项目(1)文件分组按说现在就可以往项目里面添加文件了,但是由于ARM系统开发涉及文件较多,类型繁杂,加上我们使用ST公司的标准固件库驱动文件,这样就要添加很多文件到项目里,随着项目的复杂程度加大,文件的数量是很多的。为了便于管理,我们将这些文件在项目里分组保存,IAR EWARM支持文件分组。在IDE左侧的Workspace里面,我们在刚刚建立的Template项目上点右键,选择Add? Add Group…。在d出的对话框里面输入组名(Group Name),点OK即可。我们将添加如下几个组,如图2所示。从图2可见,项目名字后面有个星号(*),这是说明项目或工作空间已经修改,但是还没有保存,现在点File?Save All,这时d出对话框让我们保存工作空间。还记得工作空间吗?第2步我们新建的工作空间,但是当时没有保存,因为当时工作者则空间里面没有项目,不能保存。输入工作空间名Template,然后点保存,这时候项目后面的星号*消失。注:工作空间扩展名.eww,项目扩展名在使用STM32的固件库的时候,需要往工程中添加使用到的功能的对应源文件,比如:stm32f10x_gpio.c等等,一个个添加很麻烦不说,每次在rebuild的时候都要编译好锋这些基本不变的文件.而通过使用库则可以解决这些问题,首先只需添加一次库文件,第二Rebuild的时候只编译我们自己写的源文件
创建库的过程(IAR中):
新建一个DLib工程,把stm32f10x_xxx.c这样的文件和对应头文件全部复制到工程文件夹下(不复制也可以),然后添加进去,还有core_cm3.c, misc.c, system_stm32f10x.c, 这些都添加进去.(注意:不要添加.h头文件,这和KEIL是不一样的,IAR里不用添加头文件,只需要源文件里#include就行了.)
.s启动文件则可以根据实际需要添加,当然你也可以每种型号都分别创建一个对应的库.然后在实际工程中根据不同的片子选择不同的库.
添加进去后,打开工程属性设置.
general option:
target属性框里选择芯片
output属性框里的Output file里选择Library(如果新建的工程是DLib的话,这里默认友迹晌已经是了)
Library Configuration属性框里的Library选项选择None(这里注意哦)
C/C++ compile:
optimizations里可以选择优化等级.
Preprocessor里,additional include directories栏里添加包含文件的路径.如同一般工程一样把头文件的路径添加进去.
OK,设置如上.编译后,将会后成一个.a文件.
以上是Debug模式下生成的库文件,Release下的设置同上.两者间的不同的是Debug选项中默认输出调试信息,而Release中默认没有.同时时我们可以在Release中根据需要把优化等级调高一点.最后州兄,Release模式下生成的库文件小一点.
和平时一样建一个工程,或者随便打开一个你自己的STM32工程.然后添加库,两种方法可以添加库:
1.可以直接像添加源文件一样,在工程中右键-add files,然后添加.a文件.
2.右键属性,在Linker选项中的Library选项卡中的additional libraries:中添加.而且可以在Debug属性中添加Debug模式产生的库,release中添加release模式生成的库.需要注意的是不能只添加路径,文件名也要写上. 比如:E:/IAR_LIB/Stm32/stm32_d.a
OK,这时你就可以把像stm32f10x_gpio.c这样的文件从工程中Remove了.
(使用库)和(不使用库手动添加stm32f10x_gpio.c)之间,在实际工程中,最终生成的可执行文件的大小是一样的.
最后,在实际工程中:
只需将stm32f10x_conf.h, stm32f10x_it.h, stm32f10x_it.c复制到工程文件夹,然后把stm32f10x_it.c添加进工程就行了(当然,前面已经说过,无论是在ARM工程,还是库工程中,IAR都不需要添加头文件,添加了反而会编译出错,只需要源文件中#include)
另外上述三文件最好不要创建成库,因为它们在不同的工程下都是不一样的,这个就不用我说了吧.:)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)