IAR-STM32开发工程建立步骤

合集下载

STM32工程建立与配置流程

STM32工程建立与配置流程

STM32工程建立与配置流程此次的STM32的学习,在程序的建立与配置上比以往的要更加复杂,所以我个人也是在新建工程以及配置工程中经常落下一些设置与操作,使整个程序无法仿真,或是程序编译出错,为了避免这样的一些基础的错误与麻烦,我个人整理了整个工程的建立到工程的全部设置,谈不上非常细致吧但也足够让一些像我一样的初学者避免一些错误,已经掌握的同学若在日后有忘记的地方也可非常方便的来查看一下。

下面就是创建与配置工程的全部过程,初学者请务必按顺序一步步查看。

1.新建一个文件夹(以后编的每一个工程都放进这个文件夹里,自己命名,例如:STM32 file)2.创建一个文件夹(名字可以根据你编写的程序来命名,如:Demo)2.1 新建子文件夹User,用于存放用户源程序2.2 新建子文件夹Project,用户KEIL工程文件2.3 在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。

2.4 将main.c stm32f10x_conf.h stm32f10x_it.c stm32f10x_it.h system_stm32f10x.c等文件复制到User文件下3. 复制源代码到Demo文件夹3.1 将stm32f10x_stdperiph_lib3.5 / Libraries文件夹整体复制到Demo文件夹下这就是ST的标准库,是以源代码形式提供的。

也可将Libraries文件夹直接复制到STM32 file文件夹下,使其与以后创建的其他工程同在一个目录下,这样可使在该目录在的工程共享Libraries。

免得以后创建一个工程就得复制一次Libraries4.新建一个Keil MDK工程4.1 启动Keil MDK,点击菜单 New uVision Project,然后按向导进行操作4.2 选择CPU类型为 STM32F103RC4.3 当提示是否复制启动代码时,请选择否。

4.4 为了延长芯片使用寿命以及加快仿真速度,可以在ram中直接仿真(ram仿真速度快),用ram仿真在断电之后数据就全部丢失了,修改Target名字, 添加两个,一个Flash,一个Ram 如图4.5 为了便于代码管理,在这个Project下创建几个GroupUser : 存放用户自己写的源代码RVMDK : 存放启动文件(汇编文件)StdPeriph_Driver : 存放ST标准库文件CMSIS : 存放CMSIS接口文件(这也是库的一部分)4.6 创建好Group后,我们开始依次添加文件。

STM32_IAR 工程解释

STM32_IAR 工程解释

第一步:文件准备新建一个文件夹‘流水灯’用于存放工程然后将固件库FWLIB中的library文件夹复制粘贴到你所建的工程文件夹中;再将FWLIB中project文件夹中的main.c ,stm32f10x_conf.h ,stm32f10x_it.c ,stm32f10x_it.h 这四个文件复制粘贴到‘流水灯’中;再将FWLIB\project\EWARMv5\中的四个镜像文件(后缀为icf)的文件复制粘贴到‘流水灯’中。

再将上述文件夹中的cortexm3_macro.s ,stm32f10x_vector.c 复制粘贴到你的工程文件夹中。

到此文件准备就基本完成。

第二步:新建IAR工程启动IAR EWARM 5.40点project----create New Project选择Create New Project 后弹出一个如下窗口,在窗口中的下拉菜单中选择ARM ,在project templates 中选在Empty Project ,然后点击OK.点击OK后会弹出一个路径选择窗口,只需选择你所建的工程的路径,然后输入工程名即可,点击保存,就可看到左边出现了你刚刚新建的工程第三步 : 为工程添加分组及文件在左边的工程名上点击右键,选择ADD ---ADD Group ,添加三个分组:EWARM , FWLIB , USER将你所建工程中的main.c , stm32f10x_conf.h ,stm32f10x_it.c , stm32f10x_it.h这四个文件添加到USER 分组中;将cortexm3_macro.s , stm32f10x_vector.c 添加到EWARM分组中;将library\src中相应的文件(初学者亦可全选)添加到FWLIB中;之后只需在main.c中进行修改,编写你所需的程序即可。

但此时有可能出现一种情况就是main.c无法修改,本人建议将原来main.c中的内容全部复制,然后在工程文件夹中删除该main.c,然后新建一个文档,将其后缀改为.c然后将刚刚复制的内容粘贴到其中,最后再将其重新添加到USER分组中(应注意必须先Remove原先那个main.c)即可。

STM32建立IAR开发环境

STM32建立IAR开发环境

以前用IAR,正点原子提供的是MDK开发环境,我重新建立了一个IAR5.30工程,使用MDK库函数版本。

拷贝MDK库函数版本工程到一个工程目录下就好了,见下图。

几个icf文件要从其他地方考过来,不难的。

startup_stm32f10x_hd.s文件要使用IAR格式的,在IAR安装目录中有MDK,GCC,IAR三种格式的,需要使用IAR格式。

IAR开发环境设置。

这里要选择FULL ,不然会出现FILE not found 的错误。

上面的红圈很重要,第一个是头文件目录,必须要设置,工程下所有用到的.h文件第二个是宏定义,USE_STDPERIPH_DRIVER和STM32F10X_HD必须要添加,VECT_TAB_SRAM是正点原子工程中设置中断向量表到SRAM和FLASH中的宏定义,我使用SRAM调试,就需要定义这个宏了。

这里也很重要,这是设置SRAM和FLASH文件,我使用sram调试就利用SRAM那个icf文件了。

这是main.c文件,Systeminit();是我加上去的,如果不加好像也没有啥影响,不过在流水灯程序中如果不加,LED闪烁时间变慢,没有在MDK中的快。

所以,以后的工程,我都把这句加上了。

这是下载code到SRAM中的map文件,可以看到是下载到SRAM中,这样就可以调试了,上面说的是利用正点原子的库函数版本的程序,移植到IAR中的步骤,但是,我更喜欢使用寄存器版本的程序,因为条理和思路清晰,容易理解。

下面步骤是将寄存器程序移植到IAR中的,步骤和上面一样,但是要修改system.c文件,见下图,其中需要几句汇编,在IAR中是利用asm(“XXXX”);来声明嵌入汇编的。

下面是需要修改usart.c的文件,注释掉前面的#if 1,但是sys_exit()和重定义的fputc()需要保留。

然后寄存器版本的程序就可以移植到IAR5.30中了。

下图是在SRAM中调试寄存器版本的LCD测试程序界面。

在MDK和IAR环境下建立STM32F207工程

在MDK和IAR环境下建立STM32F207工程

应用MDK及IAR开发STM32F207流程一.开发工具及芯片1. 所用评估板为优易特的STM3220G-RDUET,所用主芯片为Cortex M3体系结构,芯片型号为STM32F207VGT6,最高主频可达120MHZ,内部1MB Flash,128KB SRAM。

开发板由核心板与底板组成,集成了USB、CAN、Ethernet、LCD,摄像头、SPI、SD卡等多种接口与模块。

在应用中主要对CAN、Ethernet、SPI、GPIO等模块和接口进行调试与评估。

2. 应用的开发工具为IAR 6.20及Keil的MDK 4.20。

在调试同一程序的前提下,在一个文件夹下建立两个子文件夹,用于建立两个不同的工程,分别支持IAR 6.20和MDK 4.20的调试。

二者共用官方提供的库文件及时钟配置文件。

二.MDK 4.20下建立工程与调试的方法MDK是Keil公司开发的一款基于ARM开发的编辑与调试工具,后被ARM公司收购。

在调试的过程中,通常采用将生成的代码下载到内部RAM中的方法,便于调试程序。

调试完成的目标代码应下载到芯片内部的Flash中运行。

以下分别介绍两种下载方式的配置方法。

1. 下载到内部Flash中运行方法建立工程及添加文件的方法这里不再描述,可以直接拷贝示例工程文件到目标文件目录中,工程文件夹下包括两个子文件夹:Libraries和Project,Libraries文件夹中主要存放了内核配置文件,官方提供的函数库文件及程序的引导代码,Project中包含了建立工程相关文件及主函数相关文件。

要设置调试方法,首先建立一个配置选项,在工程界面选择ProjectàManageàComponents, Environment, Books…选项,显示如图1所示界面:图1 Components, Environment, Books选项在Project Targets选项中新建STM3220G_EV AL_Flash配置选项,右侧的Groups为工程代码中包含的工作组,Files为每个工作组中包含的文件。

IAR建立stm32工程

IAR建立stm32工程

IAR建⽴stm32⼯程 stm32是⼀个当下⾮常流⾏的微控制器,很多⼈都加⼊了学习stm32的⾏列中,常⽤的stm32编译器有IAR和mdk两种,接下来是利⽤stm32固件库3.5在IAR下的建⽴的⼯程模板历程: 1、在常⽤的⽂件夹下新建⽴⼀个⽂件夹,根据个⼈喜好,分别建⽴如下⼏个⽂件夹,⽤于分别存放固件库中的⽂件和⽤户⾃⼰的⽂件 2、将固件库E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\iar⽬录下的汇编⽂件复制到刚刚建好的模板⽬录下F:\STM32-IAR\demo\CMSIS\Startup 3、将固件库E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x⽬录下的⽂件复制到刚刚建好的模板⽬录下F:\STM32-IAR\demo\CMSIS\System下 4、将固件库E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver⽬录下的驱动⽂件复制到模板⽬录下F:\STM32-IAR\demo\FWLIB 5、将固件库E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\EWARM⽬录下的.icf⽂件复制到模板⽬录F:\STM32-IAR\demo\Config中6、将固件库⽬录E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下的F:\STM32-IAR\demo\User下到此为⽌,建⼯程前的准备⼯作已经做好,接下来就是打开IAR进⾏建⽴⼯程了,打开IAR->File->New->Workspace,建⽴好⼯作空间后,选择Project->Create New Project 建⽴⼀个新的⼯程,接下来将⿏标放在界⾯左侧的⼯作空间处点击⿏标右键选择Add,添加⼯作组如下图,⽂件名模板⽂件夹中的名字相同加下来分别将模板⽂件家中的.C⽂件添加进⼯程到此为⽌需要添加的⽂件已全部添加进来了,接下来是对IAR的配置,依旧是将⿏标放在左侧的⼯作空间上点击右键选择Options进⾏配置,在General Options-Target-Device选择⾃⼰使⽤的相应芯⽚型号,General Options下其他选项保持默认即可,接下来是C\C++Compler按下图进⾏设置接下来的⼏项⼀次按接下来的图⽚设置就好接下来是最容易忽视的⼀个问题,图⽚上画圈的位置⼀定要选上,不然编译将出错最后在⼯程中加⼊main函数编译通过,⼀个模板就建好了。

STM32创建工程

STM32创建工程
步骤一:创建一个新的工程(一)
首先创建一个新工程文件夹 ,用来保存 工程的文件,并在该文件夹下创建一个子文 件夹 (用来保存工程生成的文件)
步骤一:创建一个新的工程(二)

打开keil UV4
,如下下图所示:
步骤一:创建一个新的工程(三)

1.点击工具栏中的project,新建工程,如下 图所示:

6.添加完成后如下图所示:

7.编译并链接得到0个错误0个警告
步骤三:仿真
1.仿真参数设置

2.设置完成后打开仿真器

3.观测输出引脚波形PC.6、PC.7、PC.8、PC.9

4.开始仿真并观测波形

5.另外,还可以通过如下的来对各个IO的进 行观测
结束!

2.在打开的对话框中找到刚创建新工程文件 夹的路径,并给工程命名,保存在project 文件夹下

3.在弹出的对话框中选择STM32103ZE CPU

4.在弹出的对话框中选择是否要加载启动文 件,这里选择否。
步骤二:)、启动文件及 STM32F10xR(LIB格式)拷贝到工程文件夹 下。

2.添加文件到工程(点击Manage Components)

3.修改文件夹名称和添加相应的文件

4.增加库文件和启动文件后的如下图所示:

5.添加自己的Main程序,这里以GPIO测试 程序为例,给以解释。将GPIO_test中的.C 和.h文件拷到自己的工程目录下User中。

并将其加入到工程中,如上第三步骤。

IAR下建立STM32工程

IAR下建立STM32工程

开发工具:JLink V7.0开发环境:IAR5.3第一步:下载函数库从ST官方网站下载STM32 V3.0固件函数库。

第二步:复制库文件将下载的软硬件函数库解压后,将目录中的【Libraries】目录拷贝到您的项目目录中,然后【Project】目录下的【Template】目录下的main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h四个文件拷贝到您的目录下,然后将【Project】——【Template】——【EWARMv5】目录下的四个加载镜象文件复制到您的止录下。

所以这些完成后您的项目中的文件差不多如下图所示了:第三步:加载文件启动IAR5.3开发环境,选择在当前工作空间建立新项目,将提示工具选择,选择ARM即可;项目模板选择,直接选择空项目即可选择完毕后单击OK按钮,提示项目文件存放位置,直接存到之前新建的项目目录中即可。

然后按下图所示添加各文件组,并将相应的文件添加进去就可以了。

第四步:配置IAR 5.3右击项目文件(比如上图中的MyProject - Debug),选择右击菜单中的【Options】按钮,将出现项目配置选项卡。

选择【General Options】,在【Target】页中选择【Device】,再点击【Device】右侧的器件选择按钮,选择您的STM32芯片。

选择完毕后将如下图所示:选择【C/C++ Compiler】,再选择【Preprocessor】页在【Additional include directories】的文本框中,输入您的项目所需索引的头文件地址,配置完成后,将如下图所示:选择【Linker】,再选择【Config】页,将【Override Default】复选框选中,单击文本框右侧的文件选择按钮,在您的项目根目录中选择您要连接配置的文件(比如您准备将程序在Flash中运行,则选择stm32f10x_flash.icf),配置完成后,将如下图所示:选择【Debugger】,再选择【Setup】页,在【Driver】下拉选择框中选择【J-Link/J-Trace】,配置完成后,将如下图所示:完成以后操作后,点击Make命令按钮,提示保存Workspace file,输入您要保存的名称(比如就上面的项目就取名为MyProject),点击保存后,系统进行编译。

基于IAR6.4的STM32V3.0库工程建立

基于IAR6.4的STM32V3.0库工程建立

运行环境:编译器:IAR For ARM V6.4Jlink:JlinkV8 +JlinkARM V4.40库版本: CMSIS架构库文件这里值得说一下的是,就我目前使用的情况JlinkArmV4.40的驱动是最好的,后面高版本的更新Jlink后,不是正版的Jlink将会被锁死(JlinkArmV4.44d),,早期版本可能造成找不到jlink.dll的情况第一步:建立工程,增加group和源文件.首先打开IAR Wmbeded Workbench,”Project” ”Creat New Project”建立一个工程,命名选择路径保存建立好工程后,右击Add如下图,预先建立好一些方便管理的Group,然后分类在各个group 里增加源文件.为了看清楚我的工程的文件列表,下面贴两个图大家看看是我建立好的工程的界面工程建立好了之后,将说下自己环境变量的设置:(以下未提到的选项卡,我的设置是保持默认)第二步:设置编译环境,以下大部分只贴图,以下设置只是最简单的,保证工程可以通过,如果需要大家就得自己去查找设置了.按照上图所示进入设置界面,我只说一些我自己的设置,保持默认的就不再叙述了1.General Option选项卡里设置了两个选项卡:Traget 和Library Configuration,其他的保持默认Target 选项卡就不说了,大家一看就明白.至于Lib选项卡,自己根据需要,如果需要用到像printf一类函数的就需要设置成full,否则选none吧。

加库相当于家code了。

大家都懂得.2.C/C++Complier选项卡,我直接说我的配置了,直接看图吧Language1Language2Optimizations,选项卡意思是指优化等级,当使用最高等级的优化方式时,将会在三个选项中选择平衡,代码大小优先,执行速度优先, 不过在要求不严格的条件下,不建议选择优化.OuputPreprocessor这个选项卡就是设施我们包含头文件路径下面解释下头文件的包含问题:$PROJ_DIR$ :表示在工程文件所在目录$PROJ_DIR$\..\F4_StdPeriiph_Driver\inc \... 指从工程文件(.EWP, .EWW文件)所在目录返回上级目录搜索F4_StdPeriph_Driver目录,找到后进入搜素inc文件目录.. 在文件系统中表示返回到上级目录.main文件夹下的文件希望通过上述解释和两个图能让大家了解头文件相对路径的设置.还有一种绝对路径的设置例如:D:\WorkSpace\SoftWare\MyF4\CMSIS\Include绝对路径的缺点就是,当你把工程移动到另外一个盘后或者目录,再编译将产生一大堆找不到头文件的错误。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9年6月 200 2009 3
/mcu
步骤二:修改应用文件(一)
� stm32f10x_conf.h
/* Define to prevent recursive inclusion */ #ifndef __STM32F10x_CONF_H #define __STM32F10x_CONF_H /* Includes -------------------*/ #include "stm32f10x_adc.h“ … /* #include "stm32f10x_exti.h" */ #include "stm32f10x_flash.h" /* #include "stm32f10x_fsmc.h" */ #include "stm32f10x_gpio.h" /* #include "stm32f10x_i2c.h" */ … #include "stm32f10x_rcc.h“ …
设置 Output
根据需求选择是否生成调试信息文件
根据需求选择是否输出相关列表信息
设置 List
STM32 32位微控制器
9年6月 200 2009 16
/mcu
步骤五:Option设置(3):C/C++ Compile D
设置 Preprocessor
如何在IAR 5.30上 使用STM32的3.0.0版 固件库进行应用开发
上海
ST MCU
步骤一:创建项目目录,拷贝公共文件
1、将STM32的3.0版本的 1、将STM32的3.0版本的 软件库中,将Libraries 软件库中,将Libraries 目录拷贝到用户自建项 目录拷贝到用户自建项 目目录中 目目录中 STM32 32位微控制器
STM32 32位微控制器
9年6月 200 2009
19
/mcu
步骤五:Option设置(6):Debugger A
设置 Setup
开启该选择,可以 设定调试起始点。
选择使用的调试工具
STM32 32位微控制器
9年6月 200 2009
20
用户可以根据需求对某些优化 功能进行取舍。 使用High级别优化时,可选:
1. 平衡(Balanced) 2. 代码(Size) 3. 速度(speed)
STM32 32位微控制器
9年6月 200 2009
15
/mcu
步骤五:Option设置(3):C/C++ Compile C
设置*.h文件所在的位置
”” 指 ““ $PROJ_DIR$ $PROJ_DIR$” --指 $PROJ_DIR$ $PROJ_DIR$” --当前项目所在的目录 当前项目所在的目录
根据用户的应用,设置相关 Define的内容
STM32 32位微控制器
9年6月 200 2009 17
/mcu
修改中断文件 stm32f10x_it.c
根据开启的中断,在 文件中添加对应的中 断函数和代码。
中断函数的名称参见 中断函数的名称参见
startup_stm32f10x_**.s startup_stm32f10x_**.s
9年6月 200 2009 6
STM32 32位微控制器
/择: Little
STM32 32位微控制器
9年6月 200 2009
13
/mcu
步骤五:Option设置(3):C/C++ Compile A
设置 Language
选择你使用的语言 选择函数使用前是否 需要原型 选择使用语言的规范 ‘char ’is: Plain Plain‘ char’ � Signed表明使用char定 义的变量为有符号的; � Unsigned表明使用char 定义的变量为有符号的。
STM32 32位微控制器
9年6月 200 2009
14
/mcu
步骤五:Option设置(3):C/C++ Compile B
设置 Optimization
根据使用需求选择优化方案:
1. 2. 3. 4. None --- 用于调试 Low Medium High --- 用于最终代码
STM32 32位微控制器
9年6月 200 2009
8
/mcu
步骤三:保存项目(3)
保存项目到设定的 项目的根目录中
STM32 32位微控制器
9年6月 200 2009
9
/mcu
步骤三:保存工程(4)
2、将从软件库的 2、将从软件库的 Project\Template Project\Template 目录中,将main.c、 目录中,将main.c、 stm32f10x_conf.h、 stm32f10x_conf.h、 stm32f10x_it.c、 stm32f10x_it.c、 stm32f10x_it.h拷 stm32f10x_it.h拷 贝到用户的目录中 贝到用户的目录中
步骤五:Option设置(4):Output Converter
设置 Output
使能是否输出目标文件
用户可以选择输出文件 的格式
用户可以设置输出文件 的文件名
STM32 32位微控制器
9年6月 200 2009 18
/mcu
步骤五:Option设置(5):Linker
9年6月 200 2009 2
/mcu
步骤一:创建项目目录,拷贝公共文件(续)
3、 Project\ 从软件库的 3、 从软件库的 Project\ 将 EWARM5目录中, 相关 EWARM5目录中, 将 相关 链接文件(*.icf)拷贝 链接文件(*.icf)拷贝 用户的项目目录中 用户的项目目录中 STM32 32位微控制器
设置 Config 打开Override default 选 项:
�在Flash中调试程序,选用 STM32F10x_flash.icf; �在RAM中调试程序,选用 STM32F10x_RAM.icf; 在进行该项设置时,请确 在进行该项设置时,请确 认电路板上的 和 Boot0 认电路板上的 和 Boot0 引脚的跳线连接是 Boot1 引脚的跳线连接是 Boot1 否正确! 否正确!
STM32 32位微控制器
/mcu
步骤二:修改应用文件(二)
� main.c
#include “stm32f10x .h“ int main() // main program(添加自己的代码) { RCC_Configuration(); // Set System clock NVIC_Configuration(); // NVIC configuration GPIO_Configuration(); // GPIO configuration ADC12_Configuration();// ADC configuration // Enable ADC1 reset calibaration register ADC_ResetCalibration(ADC1); // Check ADC1 calibration while(ADC_GetResetCalibrationStatus(ADC1)); ADC_StartCalibration(ADC1);// calibarate ADC1 // Check the end of ADC1 calibration while(ADC_GetCalibrationStatus(ADC1)); ADC_SoftwareStartConvCmd(ADC1, ENABLE); while(1); // Infinite loop }
保存工程文件到 项目的目录中
STM32 32位微控制器
9年6月 200 2009
10
/mcu
步骤四:添加文件
以向项目中添加 c文件;也可 以添加代码组,然后将 c文件 添加到组里面:
� 可以很好地进行源代码管理 ; � 有助于生成较好的目标代码 。
/mcu
步骤五:Option设置(6):Debugger B
设置 Download
1. 选择下载程序到 Flash中调 试时,可选:
� Verify download � Use flash loader(s) (必须开启!)
2. 选择下载程序到 RAM或使 用模拟器:无需选择。 3. 如果程序已下载到 Flash中 ,再次调试时选择: 1. Suppress download
步骤三:创建新的工程(1)
点击菜单File→New → Workspace创建一 个新的工程。
STM32 32位微控制器
9年6月 200 2009
7
/mcu
步骤三:创建一个新的项目(2)
点击菜单Project→ Create New Project 创建一个项目
#include “stm32f10x_it.h” void ADC_IRQHandler(void) { // Toggle PC.06 pin GPIO_WriteBit(GPIOC,GPIO_Pin_6,Bit_SET); GPIO_WriteBit(GPIOC,GPIO_Pin_6,Bit_RESET); // Clear ADC1 AWD pending interrupt bit ADC_ClearITPendingBit(ADC1,ADC_IT_AWD); } void TIM2_IRQHandler(void) { }
修改设置文件 stm32f10x_conf.h
根据自己使用外设的需 求,将相应外设的头文件 (*.h)包含进来;
如果使用中断和 Systick, 需要包含此头文件。
注:本文中使用STM32软件库中的例子。
相关文档
最新文档