原创 STM32学习笔记(19)-IAR编译环境的建立

2010-9-4 08:11 6741 17 17 分类: MCU/ 嵌入式

     记得本笔记开始时曾说过,我选用keil,理由是keil我熟,而当时我什么都不懂,总要找个熟悉点的东西,并且说过,如果需要用到IAR时,肯定上手也很快。这回要用IAR了,看一看上手究竟快不快啦!


       资源列表:


 芯片:STM32103VC


库:3.3


JLINK:V8


IAR:5.3


工作目标:编译库中的例子。


工作过程:


(1)文件夹结构


2dd2c260-bbaf-466e-a4a3-ae29d42ea02a.jpg



就是3.3库解压缩后的样子,基本上没有变化。


为什么要强调这个呢,这可和设置有很大的关系。


接下来看例子文件


6d33ba42-08f9-4a15-a04c-c0eec707b32d.jpg



其中上面的那个文件夹中包含了大量的例子,而下面的这个文件夹则包含了几种编译器的工程例子,里面有一些东西是我们需要用到的。


再继续


这次偷了点懒,没有专门为源程序建立一个文件夹,直接把工程文件和源程序文件放在一起了,当然,也有一个因素,是因为使用IAR默认设置就做得相当的“干净”,编译完了后没有多出几个文件出来。要是keil,那可不得了,,,


36508278-8b92-48f5-8d7e-e4a716caffa9.jpg



在iar中用File->New->WorkSpace新建一个工作区,然后用Project->Creat New Project新建一个工程。


95e88cf0-d58b-47a7-ad88-db0f50cc7ee7.jpg



起名保存等等吧,这一类的问题就不在这里一一列出了。


总之我们做好了一个名为IOToggle的工程,然后就要将文件加入到工程中去了。


为了便于区分,同样在IOToggle中建立3个组,如下图所示。


dc16d83c-7574-408f-9a2e-925a03407100.jpg



将IOToggle文件夹中的所有C文件全部加入到APP组,同时再将


1ba0c3d5-fb08-49c8-ae3a-827ce61e4d47.jpg



中的stm32_eval.c文件加入这个组中。


在CMSIS组中加入的文件是:


182dff75-b656-48e4-9d30-b3de04f1ed51.jpg



其中core_cm3.c在\Libraries\CMSIS\CM3\CoreSupport文件夹中,system_stm32f10x.c在\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x文件夹中,而startup_stm32f10x_hd.s在\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\iar中。


在LIB文件夹中加入的文件是:


0a7bfdec-2aa9-47db-9607-b6a27ee16d58.jpg



这些文件当然都是3.3库所提供的,在\Libraries\STM32F10x_StdPeriph_Driver\src文件夹中。


至此,文件加入完毕。


接下是重要的设置工作。


777d41d4-3b1b-4d65-a74c-0f6db8289b8c.jpg



下面的设置很重要


ce3b0af0-0ddd-4c29-8113-37f21f888c2e.jpg



设定头文件所在位置,这个如果设置不对,编译不能通过。


$PROJ_DIR$\ 


设定项目所在位置,如果这个没有的话,会找不到stm32f10x_it.h等头文件。


$PROJ_DIR$\..\..\..\..\Libraries\CMSIS\CM3\CoreSupport


这里的..\表示的是上级目录的意思(DOS下的东西,那么的熟悉,又沟起了许多的回忆^_^)


$PROJ_DIR$\..\..\..\..\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x


$PROJ_DIR$\..\..\..\..\Libraries\STM32F10x_StdPeriph_Driver\inc


$PROJ_DIR$\..\..\..\..\Utilities\STM32_EVAL


其他的都不多说了,如果做其他工程时,目录结构与上面的不相同,那么基于这些知识就能自行修改这些参数了。


在Defined sybols中预设了一个符号,这也是必须的,否则会有大量的编译错误出现。


接下来,在Link中还有一个重要的设置:


d2464741-14ad-4394-b3bc-1160c863fc2c.jpg



需要更改override default的设置,不能使用其默认的设置。


4b59d99f-8dd4-4cfb-bb47-94f9e3ce4ee0.jpg



这个EWARMv5在这里:\Project\STM32F10x_StdPeriph_Template\EWARMv5


要选择这个stm32f10x_flash.icf替换掉原来的默认设置,这个其实就是准备向flash中写代码的。


接下来要设置的是Debugger。我们选择


b7fcabfe-5fac-4ac1-9189-eab8b4ddfa2c.jpg



接着切换到Download


ca59c2cf-0d2b-4035-bedb-7fdae72bcad4.jpg  



这里只要选中Use flash loader即可,不需要做修改。


接着可以到J-Link/J-Trace中去修改,不过,我用的都是默认的参数,没有什么需要修改的。


随后修改stm32_eval.h文件,选择究竟使用4块板中的哪一块,然后再对stm32_eval.h中的相关定义修改,令其与我的硬件配套。编译、链接、下载、仿真,OK!一切顺利。


至此,IAR基本算是玩起来了。


 


 

文章评论0条评论)

登录后参与讨论
我要评论
0
17
关闭 站长推荐上一条 /2 下一条