搜索
bottom↓
回复: 73

STM32 IAR工程->Keil MDK转换详解【恢复】

[复制链接]

出0入0汤圆

发表于 2008-11-25 16:42:28 | 显示全部楼层 |阅读模式
转自 http://home.eeworld.com.cn/?uid-78097-action-viewspace-itemid-5182



我在STM32的学习中发现,大部分的STM32示例程序都是基于IAR开发环境的,但我认为使用Keil MDK开发环境更加方便,可以利用RVMDK强大的外设仿真功能加速STM32的开发。我在以前的Blog文章里介绍过如何在RVMDK中建立STM32工程,以及如何使用RVMDK的软件仿真功能,下面我将详细说明怎样将已有的IAR工程移植到RVMDK。 

 



       不管是IAR还是RVMDK,编程时使用的都是STM32的固件函数库,唯一不同的是启动文件。RVMDK在建立STM32工程时会自动创建启动文件STM32F10x.s,而IAR使用的启动文件是cortexm3_macro.s。此外,两者对中断向量表的管理也不一样。



 



       在移植STM32工程时首先要检查IAR工程中是否使用了中断。方法是要看工程中stm32f10x_it.c文件内的各中断函数是否为空函数,中断函数为空说明没有使用中断;否则若中断函数有修改并且在main函数中对NVIC进行了设置,则说明使用了中断。



 



       下面分没有使用中断和使用了中断这两种情况分别介绍移植方法。



       



无中断:



       没使用中断时的移植较为简单,此时还可以使用RVMDK自动创建的启动文件STM32F10x.s,只要把IAR工程project文件夹中的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h和main.c等文件复制到建立好的RVMDK工程文件夹下,然后为RVMDK工程添加使用到的库函数文件即可。



 



有中断:



       如果IAR工程中使用了NVIC时,在RVMDK下就不能再使用自动生成的STM32F10x.s启动文件了,但可以用IAR工程中的启动文件cortexm3_macro.s和stm32f10x_vector.s来替换。下面以万利EK-STM32F开发板提供的ADCDemo为例,介绍如何将IAR工程移植到RVMDK。由于在ADCDemo中使用到了TIM2_IRQHandler,需要在RVMDK中作以下修改:



 



       第一步、在RVMDK中建立工程,命名为ADC_MDK;然后将启动文件cortexm3_macro.s和stm32f10x_vector.s复制到建立好的ADC_MDK工程文件夹下,并在ADC_MDK工程中将RVMDK自动建立的启动文件STM32F10x.s删除,用以上两个文件替换。



       



       第二步、将ADCDemo IAR工程project文件夹中的lcd.c、lcd.h、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h和main.c文件复制到ADC_MDK工程文件夹内。

  



 (原文件名:1.jpg) 



第三步、为ADC_MDK工程添加使用到的库函数文件,然后进行编译。



       



       最后的工程目录:





 (原文件名:2.jpg) 



cortexm3_macro.s和stm32f10x_vector.s启动文件:



       只需以上三步,不用改动任何代码就能搞定IAR工程的移植!只要掌握了将IAR工程移植到Keil MDK中的方法,就可以利用现有的大量IAR STM32示例来加快在RVMDK中的开发。







    

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2008-12-5 09:25:40 | 显示全部楼层
好东西

出0入8汤圆

发表于 2008-12-5 10:41:48 | 显示全部楼层
1、你是否有看过MDK下的 ...\ARM\Examples\ST 目录?建议你看看再说;



2、是否有在ST下载官方的固件库例程?里面是有包含了RIDE、MDK、IAR下的工程,都是现成的。

出0入0汤圆

发表于 2008-12-5 11:55:20 | 显示全部楼层
下载了,现成的,project下有

出0入0汤圆

发表于 2008-12-8 15:59:55 | 显示全部楼层
楼主所说的 stm32f10x_vector.s 在万利的例程目录下好像没有呢?

出0入0汤圆

发表于 2009-3-23 20:30:09 | 显示全部楼层
谢谢,做一个标记。

出0入0汤圆

发表于 2009-8-9 17:39:14 | 显示全部楼层
stm32f10x_vector.s找不到

出0入0汤圆

发表于 2009-8-9 21:25:35 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-8-27 17:24:47 | 显示全部楼层
记号

出0入0汤圆

发表于 2009-9-6 14:43:17 | 显示全部楼层
先记下,以后可能用的着

出10入95汤圆

发表于 2009-9-23 22:40:50 | 显示全部楼层
我移植过来的时候发现错误,错误代码得明天发过来

出10入95汤圆

发表于 2009-9-24 08:50:44 | 显示全部楼层
问题已经找到,是在IAR里面,可以在函数里面定义变量,而KEIL不行,只能在函数的开始地方定义。
移植过来了,使用没有问题,哈哈。

出0入0汤圆

发表于 2009-9-24 08:54:49 | 显示全部楼层
这个贴需要MARK

出0入0汤圆

发表于 2009-9-24 21:04:30 | 显示全部楼层
这个需要标记

出0入0汤圆

发表于 2009-10-1 21:03:16 | 显示全部楼层
我还没有搞定,EK-3210E的板子,自带的例程是IAR 4.42的,我的Windows2003安装出错,准备搞到MDK4.00。

出0入0汤圆

发表于 2009-10-1 23:27:30 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-1-14 15:37:13 | 显示全部楼层
简单明了,一看就明!!

出0入4汤圆

发表于 2010-1-14 21:17:14 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-29 07:45:43 | 显示全部楼层
记号

出0入0汤圆

发表于 2010-1-30 18:18:28 | 显示全部楼层
mark

出0入85汤圆

发表于 2010-4-12 14:10:55 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-26 22:19:33 | 显示全部楼层
收藏了~

出0入0汤圆

发表于 2010-4-28 22:51:55 | 显示全部楼层
谢谢,做一个标记。

出0入0汤圆

发表于 2010-4-29 09:03:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-5-9 21:06:39 | 显示全部楼层
学习了
头像被屏蔽

出0入0汤圆

发表于 2010-5-21 22:34:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2010-6-12 00:13:53 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-18 09:15:21 | 显示全部楼层

出0入0汤圆

发表于 2010-7-27 21:42:40 | 显示全部楼层
我最近发现 用MDK4.0编代码, 在没有编译的时候 ,就鼠标放在代码中间,占用CPU资源太大了30%左右,IAR有这种情况吗?

出0入0汤圆

发表于 2010-8-24 22:53:42 | 显示全部楼层
回复【12楼】ddcour 小打小闹
问题已经找到,是在iar里面,可以在函数里面定义变量,而keil不行,只能在函数的开始地方定义。
移植过来了,使用没有问题,哈哈。
-----------------------------------------------------------------------

定义变量的位置,我也觉得Keil变态了点,难道不能学习一下IAR的做法

出0入0汤圆

发表于 2010-8-26 10:22:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-23 14:12:42 | 显示全部楼层
好文章要顶

出0入0汤圆

发表于 2010-9-23 16:08:54 | 显示全部楼层
先标记,虽然没用过IAR!!

出0入0汤圆

发表于 2010-10-4 02:09:16 | 显示全部楼层
MARK,能用得着

出0入0汤圆

发表于 2010-10-6 17:06:25 | 显示全部楼层
STM32 IAR工程->Keil MDK转换详解

出0入0汤圆

发表于 2010-10-12 22:39:21 | 显示全部楼层
收藏了,学习!

出0入0汤圆

发表于 2010-10-13 08:04:53 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-13 08:31:36 | 显示全部楼层
好贴

出0入0汤圆

发表于 2010-10-20 08:42:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-20 17:26:49 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-10-20 17:40:15 | 显示全部楼层
mark

出350入8汤圆

发表于 2010-10-20 17:46:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-20 18:01:46 | 显示全部楼层
真那么简单倒好了....实际要改的细节多了,很多编译器特定的扩展定义都要改....烦着呢.....

出0入0汤圆

发表于 2011-3-7 11:55:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-7 20:35:21 | 显示全部楼层
对老手来说来说用哪两个是习惯问题,对新手(51不知道是啥东西)来说哪个都无所谓,不过IAR的评价比MDK要好的多,在实践中也证明了这一点。。。不过MDK的风格像VC++,外观还是比IAR好看一点。。。花这些时间和精力去移植还不如习惯这两种工具...

出0入0汤圆

发表于 2011-4-26 13:43:52 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-28 09:30:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-25 11:07:36 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-5-26 22:36:31 | 显示全部楼层
mark备用

出0入0汤圆

发表于 2011-6-2 17:32:34 | 显示全部楼层
mark,以后有用的到。

出0入0汤圆

发表于 2011-6-2 18:46:31 | 显示全部楼层
好贴

出0入0汤圆

发表于 2011-6-2 19:06:52 | 显示全部楼层
mk

出0入0汤圆

发表于 2011-6-10 10:29:03 | 显示全部楼层
mark ~~

出0入0汤圆

发表于 2011-7-20 22:51:37 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-7-21 08:14:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-21 10:22:36 | 显示全部楼层
顶lz,特别是对中断部分的描述

出0入0汤圆

发表于 2011-7-21 10:51:03 | 显示全部楼层
正在学习入门中。看到这么多库有点茫然~

出0入0汤圆

发表于 2011-7-21 19:17:53 | 显示全部楼层
果断的做个记号

出0入0汤圆

发表于 2011-10-20 16:22:46 | 显示全部楼层
mark,一个工程做完了还不怎么会用工具。。

出0入0汤圆

发表于 2011-10-20 16:59:18 | 显示全部楼层
好的。

出0入0汤圆

发表于 2011-10-20 21:54:49 | 显示全部楼层
mark!!!

出0入0汤圆

发表于 2011-10-21 20:46:10 | 显示全部楼层
学习中、、、感觉好难、、、

出0入0汤圆

发表于 2012-1-17 11:44:57 | 显示全部楼层
mark
头像被屏蔽

出0入0汤圆

发表于 2012-1-30 00:16:56 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2012-1-30 00:29:31 | 显示全部楼层
这个,虽然用不上,半夜了,顶一下,赞个积分。

出0入0汤圆

发表于 2012-1-30 09:20:27 | 显示全部楼层
回复【29楼】wind2100
-----------------------------------------------------------------------

C99和C90的标准不同而已

出0入0汤圆

发表于 2012-2-24 12:53:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-27 11:28:39 | 显示全部楼层
没试过,不知道实用不。

出0入0汤圆

发表于 2012-3-6 20:20:29 | 显示全部楼层
ding

出0入0汤圆

发表于 2012-6-16 16:49:34 | 显示全部楼层
值得收藏

出0入0汤圆

发表于 2012-8-13 16:37:48 | 显示全部楼层
mark Good!!!

出0入0汤圆

发表于 2012-9-5 22:54:59 | 显示全部楼层
mark            

出0入0汤圆

发表于 2013-11-22 21:25:47 | 显示全部楼层
mark 一直在用IAR
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-21 00:38

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表