嵌入式 · 2010-05-25

Eclipse和单片机开发环境Keil的集成编译工具KeilMake 使用详细教程

Eclipse和单片机开发环境Keil的集成编译工具KeilMake
通过KeilMake可以在Eclipse上进行单片机开发且编译
使用方法:
配置Eclipse中项目Builder Settings的编译命令为
D:MyWorkSCMKeilMakeReleaseKeilMake D:MyWorkDevToolscommandkeilAT89S52.Uv2 ${ProjName} ${ProjDirPath} C:KeilUV2uv2.exe

红色部份修改为程序相应的路径即可,在Eclipse中写完程序后按Ctrl+B即可编译

AT89S52.Uv2 是Keil项目的模板文件,可根据个人需要进行修改,自带的模板配置是
AT89S52芯片,晶振为24Mhz,自动生成Hex文件

近期本人使用Keil进行单片机程序开发,感觉超不爽,在微软长期毒害下,我相信大部分跟着VS做开发的人们都对微软IDE的智能过于依赖。所以最 终我选择了Eclipse,虽然和微软的IDE相比还是有很大差距,不过对于我要做单片机开发的工作应该也可以满足了。在网上并没有找到Eclipse和 Keil可以很好集成在一起的插件,无而之下只好自己动手,搞搞科研了。

KeilMake就是这次的科研成果了,现与大家共同分享。

如果你的芯片和我现在用的一样是AT89S52,24Mhz,那么直接按照上面的方法即可使用,下面的内容可以略过。

如果是其它芯片,又和我一样想用Eclipse来进行单片机开发,那么请跟着我一步一步的操作。

环境安装,安装好Keil和Eclipse下面是我安装两个软件的版本

最新片Eclipse可以到这个地址 www.eclipse.org/downloads/ 下载C/C++版本的即可。

两个软件都安装好后我们就可以开始建立Keil模板了。

首先我们要知道自己的芯片的型号等信息,这里以举个AT89S52的例子,首先在Keil创建一个新项目

我们把项目文件保存为 stc89c52.Uv2 等会需要用到这个文件

CPU类型选择Atmel下面的AT89S52

新增加一个TEST.C的文件,内容空白就行了,因为我们不是在写代码,我们只是创建模板。

点击上面框框中的按钮对项目进行设置。

输入晶振的频率,我这块芯片是24MHz的。

设置生成时创建16进制文件,格式选择HEX-80

接下来用记事本打开刚才我们创建的项目文件 stc89c52.Uv2 留意红色框框的地方,这两个地方是我们需要修改的

File 1,1,<.test.c><test.c> 0x0  修改为 {CodeList}

stc89c52 修改为 {FileName}

完成上面步骤后,模板就创建完成了,我们把 stc89c52.Uv2 复制到别的地方,我放到D:MyWorkDevToolscommandkeil下

我把KeilMake.exe也放到这里了,这个不是必要的,我只是为了方便而已。

好了,现在到Eclipse了,如果在Eclipse上创建Keil项目呢?这里需要更正一个问题,我们不需要在Eclipse上创建Keil项 目,只要创建C项目就可以了,因为 KeilMake.exe 的工作就是把Eclipse上创建的C项目拿到Keil下去编译生成。

创建一个C项目

项目名称:testKeilProject

这里项目类型我选择Empty Project是因为我不需要用到MinGW GCC的类库,所以我选择空项目,然后Toolchains选择Other Toolchain,这一步我们可以直接点击Finish了。

现在到了最关键的设置时刻了,打开项目属性设置窗口。

Build command的值:D:MyWorkDevToolscommandkeilKeilMake.exe D:MyWorkDevToolscommandkeilstc89c52.Uv2 ${ProjName} ${ProjDirPath} C:KeilUV2uv2.exe

下面我们解释一下这行命令的意思

D:MyWorkDevToolscommandkeilKeilMake.exe KeilMake的路径。

D:MyWorkDevToolscommandkeilstc89c52.Uv2 我们刚才创建的Keil模板,以后只要是使用相同芯片做开发就可以使用这个模板。

${ProjName} 是Eclipse中的生成变量,是Eclipse里的项目名称,生成的HEX就是以这个值来命名。

${ProjDirPath} 是Eclipse中的项目目录

C:KeilUV2uv2.exe 是Keil的主程序路径

还有这里红色框框要留空,原值是all

点击File system按钮选择Keil目录下的c51inc目录

完成这一步后,基本上都完成了,我们来写一个程序测试一下。

Eclipse的自动完成功能

很简单的代码,来测试一下编译功能CTRL+B,记得要先保存再按CTRL+B,我刚开始时经常范这个错,所以代码没有编译到。

红色框框是编译生成输出的信息,看到

0 Error

creating hex file from “stc89c52”

这两行就是程序已经编译完成,在项目目录下会看到 stc89c52.hex 文件,把这个文件刷到单片机上试试看?

KeilMake是我学C语言的第一个程序,可能会存在一些BUG,如果使用过程中遇到什么问题,请随时和我联系,可发邮件到我的邮 箱:nick#workao.org 把#换为@

完。

附 KeilMake 下载地址:

KeilMake