在IAR For ARM和Keil Realiew MDK中建立工程的步骤

转载 2015年07月08日 16:57:05
 从接触STM32以来,一直都是在IAR For ARM 4.22A环境下进行开发。因为以前用过IAR For MSP430,对IAR的开发环境比较熟悉,再加上万利板子提供的例程都是IAR的,用起来也还顺手。  
        直到前一阵参加了一个ARM的研讨会,会上英蓓特极力推荐RealView MDK中国版,好奇之下就Download了一个试用版,但一直没仔细研究。后来网上又出现了ST Link-II在RealView MDK下的驱动,下来试了试,能用!这下可不能浪费了咱手上的开发板,于是就在RVMDK下玩了不少程序,发现RVMDK的确在很多地方都比IAR用起来更顺手,特别是软件仿真功能,用起来真爽!于是本人决定弃暗投明,转入RealView MDK开发环境了。 

        为了让像我一样的STM32新手尽快入门,我把自己对这两个开发环境的体会总结如下: 

一、在IAR EWARM中建立工程的步骤: 

1. 建立工程项目文件 
    新建一个文件夹来存放整个工程项目,在该项目文件夹下建立几个子文件夹存放不同类别的文件: 
i. 将官方模板中的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h和空白main.c文件复制到该项目文件夹下; 

ii. Obj-存放工程文件,将官方模板中的cortexm3_macro.s、lnkarm_flash.xcl、lnkarm_ram.xcl和stm32f10x_vector.c文件复制到该文件夹下。 

iii. library-存放STM32 FWLib文件,将官方提供的固件库library复制到该文件夹下。 

2. 在IAR中建立工程 
    打开IAR,在Project菜单下新建工程,把该工程存放在刚刚建立的Obj子文件夹下; 
  
3. 工程管理 

i. 为了方便项目的管理,在刚建立的项目中添加几个Group用来放置不同类型的文件: 
1).FWLib-用来存放所需固件库的头文件; 
2).StartUp-用来存放STM32的启动代码,添加cortexm3_macro.s和stm32f10x_vector.c(中断向量表); 
3).User-用来存放用户文件,添加main.c和stm32f10x_it.c(中断空函数) 

ii. 进行项目设置: 
   在工程上单击右键,选择Option,打开工程设置窗口: 
1).在General Options->Target->Device中选择ARM器件型号“ST STM32F10x”; 
2).在C/C++ Compiler->Preprocessor->Additional include directories中填入 
$PROJ_DIR$\..\ 
$PROJ_DIR$\..\library\inc 
注:$PROJ_DIR$表示工程所在路径,\..\表示返回上一级目录。 

3).在linker->config->Linker command file里选中Override default,然后根据实际情况填入$PROJ_DIR$\lnkarm_ram.xcl,并同时在C/C++ Compiler->Preprocessor->Defined Symbols里填入“VECT_TAB_RAM”(在RAM中调试); 
或者 
$PROJ_DIR$\lnkarm_flash.xcl,并同时在C/C++ Compiler->Preprocessor->Defined Symbols里填入“VECT_TAB_FLASH”(在FLash中调试); 

4).在Debugger->Driver中选择“Third-Party Driver”,在Third-Party Driver->IAR debugger Driver中填入ST LINKII的驱动C:\Manley\drivers\STLink\STM32Driver.dll”;

4. 编译调试 
    在stm32f10x_conf.h中将没有用到的外设注销,将所需外设固件库的头文件添加到工程中; 

  

二、在Keil Realiew MDK中建立工程的步骤 

1. 建立工程项目文件 
    新建一个文件夹来存放整个工程项目,在该项目文件夹下建立子文件夹存放不同类别的文件: 
Obj:存放工程文件 
Out:存放编译输出文件 
User:存放用户源代码文件 
library:STM32 FWLib文件 

2. 在KEIL中建立工程 
    打开KEIL3,在Project菜单下新建工程,把该工程存放在刚刚建立的Obj子文件夹下;点击保存后弹出选择器件窗口,选择使用的ARM器件型号;点击确定后弹出是否添加启动代码的对话框,这个时候选择“是”,工程建立成功。 

3. 工程管理 
    为了方便项目的管理,在刚建立的项目中添加几个文件夹用来放置不同类型的文件: 
  
i. 在工程上单击右键,选择Manage Components,弹出工程文件管理窗口,建立几个文件夹备用,这可以根据个人编程习惯处理; 
1).StartUp-用来存放STM32的启动文件; 

2).在Project菜单下新建源文件main.c,保存在User子文件夹下,注意文件名一定要有.c后缀,把该文件添加到工程中(Add File to Group "User")并编写程序代码; 

3).将所使用到的库函数加入工程(Add File to Group "Lib"),其中stm32f10x_lib.c文件是整个库的一些定义,是必须要的;在这里,如果不知道使用了哪些库函数,不知道应该添加哪些库文件进入工程,有个最简单的办法就是添加所有的固件库函数到工程,为了方便可以直接添加:C:\Keil\ARM\RV31\LIB\ST路径下的STM32F10xR.LIB文件进入工程; 

ii. 在编译之前还应该对工程选项做些设置,当然,这些设置也可以在建立工程后马上进行;在工程上单击右键,选择“Options for Target”,打开选项窗口: 
Device标签为器件选择; 
Target标签为目标设置; 
Output标签为输出设置,点击“Select Folder for Objects”,选择输出文件存放路径为Out子文件夹; 

Debug标签为DEBUG调试设置,默认状态为软件调试,这里选择用ST LINK-II Debugger进行硬件调试,选择Run to main是为了进入调试状态后直接进入主函数; 
Utilities标签是程序下载设置,这里同样选择ST LINK-II Debugger; 

4. 编译调试 
    目前ST LINK-II不支持Flash菜单中的Download和Erase命令,程序通过点击“Start/Stop Debug Session”菜单自动载入flash中供调试。 

Keil工程到IAR工程的移植

Keil工程到IAR工程的移植 STM32工程使用的启动文件有不同的版本,在移植STM32工程之前先检查MDK工程的启动文件。  启动文件为cortexm3_macro.s和stm32f...
  • wzk456
  • wzk456
  • 2014年04月19日 22:40
  • 1497

嵌入式 浅析Codewarrior、IAR和Keil MDK三大开发环境优缺点

嵌入式  浅析Codewarrior、IAR和Keil MDK三大开发环境优缺点   (2013-05-22 12:07:02) 转载▼ 标签:  电子科技   it   ...
  • fuyunliushuizjf
  • fuyunliushuizjf
  • 2015年01月14日 15:49
  • 2974

IAR vs MDK的简单比较

//=====================================================================//TITLE://    IAR vs MDK的简单比较...
  • norains
  • norains
  • 2009年12月11日 12:42
  • 14958

KEIL项目迁移IAR向导(中文)

项目迁移向导 从Keil µVision® forARM平台转为 IAR Embedded Workbench® for ARM平台 本文使用的项目例程所采用的IDE版本如下: ...
  • weixin_39871788
  • weixin_39871788
  • 2017年12月12日 11:20
  • 268

keil工程移植到IAR历程

以下的移植过程以一个LED闪烁实验工程(平台为STM32107)为例: 第一步,创建一个工程文件夹LED,然后在LED文件夹下再建几个子文件夹: src、inc、lib。 第二部,将keil下的文...
  • wolaiyetongxue
  • wolaiyetongxue
  • 2015年10月15日 20:33
  • 3575

Keil MDK 和 IAR 两款ARM开发工具区别比较

首先要说明,没有那款开发工具是万能的,也没有那款工具在所有方面都具有绝对优势。对于Keil MDK-ARM和IAR两款工具择,可以根据自己的习惯来选择,而不应该在使用其中的一款时贬低另外一款,或者总是...
  • wzk456
  • wzk456
  • 2014年04月19日 21:55
  • 3599

STM32 IAR工程->Keil MDK转换详解

我在STM32的学习中发现,大部分的STM32示例程序都是基于IAR开发环境的,但我认为使用Keil MDK开发环境更加方便,可以利用RVMDK强大的外设仿真功能加速STM32的开发。我在以前的Blo...
  • Derricker406
  • Derricker406
  • 2018年01月05日 22:29
  • 72

IAR forARM 建立第一个STM32F051的工程

一.自己画了个板子,打样后,自己测试。部分原理图如下: 二.现在建立工程,编写程序来点亮这5个LED灯。 1.好的程序员自己写程序,优秀的程序员偷别人的程序。所以从...
  • qq_26308521
  • qq_26308521
  • 2017年05月12日 14:03
  • 812

IAR和KEIL中以常量形式存储到ROM或FLASH的指定的位置

【经验分享】KE02在IAR和KEIL中以常量形式初始化EEPROM值 一, 经验分享描述         写这篇经验分享的原因是,之前有一个客户,他希望在KE02的芯片中,不要出现使用EEPROM操...
  • guoggn
  • guoggn
  • 2016年11月09日 10:40
  • 2992

移植keil到IAR

IAR 6.3中intrinsics.h与core_cm3.h 中的兼容错误解决方法 标签: IARarmintrinsics.hcore_cm3.h 2016-01-26 09:52 166人阅...
  • kuangdoushi
  • kuangdoushi
  • 2016年09月21日 17:02
  • 2003
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在IAR For ARM和Keil Realiew MDK中建立工程的步骤
举报原因:
原因补充:

(最多只允许输入30个字)