ARM DS-5开发STM32程序(Eclipse配合Keil插件使用)

ARM 151浏览

ARM DS-5是基于Eclipse的ARM开发环境,有完善的编译流程,配合Keil插件开发STM32效果更佳。废话不多,先介绍思路:

1.安装MDK软件,就有编译STM32的工具链。我使用是MDK 4.72的。 

http://pan.baidu.com/s/1o6iHPVG

2.安装DS-5,并注册社区版(免费阉割)。

http://pan.baidu.com/s/1mgHX2JY

补充:社区版激活代码:

http://ds.arm.com/zh-cn/ds-5-community-edition/getting-started/

3.运行DS-5安装Keil插件

安装好Keil插件后只是使用了Keil的调试和下载功能,真正与DS-5合体需要在Eclipse设置。

4.设置编译工具链,打开eclipse,Windows->Preferences,弹出Preferences窗口后选择DS-5->Toolchains,点击Add。选择keil安装目录下的ARMARMCCbin,然后确认点next、next通常会检测出armcc的版本

ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker
确认后如下图,黄色的就是添加后的工具链。
ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker
ds-5的环境设置到这里完成,然后进行项目设置。
 

5.源码复制到DS-5项目。由于Eclipse和mdk的项目文件显示不一样,Eclipse是项目文件夹有什么在Eclipse就显示什么,Keil要在设置并加入文件才在项目显示。 所以Eclipse加入程序源码只要在项目文件夹新建文件并复制源码就行。

首先在Eclipse新建arm项目,New->C Project,选择Empty Project和ARM Compiler 5.03,同时输入项目名称Finish,下图因为之前有test1这个项目才出现错误。
ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker
然后添加原来的源码到Eclipse的项目文件夹就是了,下图可以对比一下Keil与Eclipse的项目表示方式,
ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker
6.构建设置。项目源码添加后还要设置给编译工具链的参数。点到项目右键选择Properties,C/C++ Build->Tool Chain Editor,Current builder有CDT Internal Builder和Gnu Make Builder选择,Gun的使用Makefile,CDT是命令形式。在win7下CDT编译是明显快一点。这两个builder还有的区别是文件路径的表示不一样,不过影响不是很大。
然后是C/C++ Build->Settings,根据下面图基本ok,其实Preprocessor和Includes的设置都与MDK设置对应的。Target CPU是Cortex-M3,
ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker
ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker
 
ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker
 
ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker
 
ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker
 
ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker
 
ARM DS-5开发STM32程序(Eclipse配合Keil插件使用) - JoGeeker - 要成为Geek之王的Joker

 

 在ARM Linker设置里面涉及一个比较关键一点,就是scat文件,在Keil其实也有但是几乎看不到它的身影。
ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker
在Eclipse里面就要通过这个给链接器,所以在项目下新建一个Templet.scat,DS-5支持scat后缀的文件有特别的查看方式,不过对于STM32应该不重要。0x08000xxx和0x2000...数字的意义懂stm32的存储器地址都明白吧。写好scat文件后记得在ARM Linker的Image Layout设置Scatter file。
ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker

 

ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker

 

 

ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker
 

 最后设置打印出来的信息,-map就打印出每个函数和变量的地址。--list就打印到文件,空着打印到console。

基本的设置完成,利用Keil插件可以进行调试和下载。
补充:
1.不想编译某文件,点击文件右键->Resource Configurations->Exclude from Build..,并勾上就可以。
ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker

 

ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker

 

ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker

 2.关于bin文件制作,在stm32使用IAP会发送2进制文件给芯片。除了要scat文件里面设置地址外,还要使用keil的自带软件生成bin。设置同样在C/C++ Build->Setting->Build,设置Post-build steps的Comand。

 ARM DS-5开发STM32程序(使用Keil插件) - JoGeeker - 要成为Geek之王的Joker

  

STM32开发基本上使用keil和iar,keil很强大,运行快速,设置简单直观,模拟和调试工具都做的不错。IAR个人觉得比较丑陋,虽然keil也不是很漂亮。。而Eclipse,其实一开始我是拒绝的。。。因为它设置比较复杂而且一开始加载很慢,对比keil有没什么优势。但是当你的工程越来越多,分支也开始多的时候,就发现Eclipse的优势:
1.清晰的项目管理,不用再开多个keil软件和文件夹
2.与svn方便使用,Eclipse安装了svn插件就容易的进行版本管理


补充:附上配置好的工程文件

http://pan.baidu.com/s/1kTH5IEb