用c51命令行编译HEX单片机文件

刚开始学STC51单片机的开发,用Keil uVision4进行编辑和编译。Keil的IDE是使用工程方式组织,对于小弟初学并不是很方便。

  • 每次做个试验都要建立一个工程,而且会出现一堆文件。
  • 虽然电脑还可以,感觉启动IED比较慢
  • Keil的编辑器对中文的支持并不太好
  • 由于改动并不一定在已打开IED的情况比较多,每次都必须打开Keil编译,郁闷的很。
  • 最最最主要的还是想简单方便点

出于上面的目的看了一下Keil的帮助,^_^ 发现用批处理可以解决我的烦恼。Keil的安装目录有C51和UV4,很明显一个是编译工具目录,另外一个是IED程序目录。外国的产品就是做的好,帮助文档做的非常全而且详细。

 

用命令行流程是 编译源文件成OBJ,然后链接OBJ,之后转换成HEX文件。这样就OK了,很简单。
C51.exe 编译c文件,BL51.EXE链接OBJ, OH51.EXE转换文件成HEX。

注意:不要忘记吧头文件复制到 \C51\INC 库目录中,以后使用比较方便。

如:有个test.c的文件

C51.EXE test.c
BL51.EXE test.obj TO test
OH51.EXE test

这样就OK,能编译出HEX文件。

 

不过这样每次写批命令还不是很方便,干脆就写一个简单的批程序 ^_^,挂编辑器上直接编译。

再吧批命令挂接到代码编辑器上,以后只要打开文件就能直接编译。 如果有问题可以直接看log文件。

 

运行一下就自动编译!


大功告成!VVVV 本人比较懒^^

 

 

批处理文件就直接贴批代码,就不多解释了。

注意:这个批代码只能编译单个C文件,并没有强化。

 

编译批处理
 1 @echo off
2
3 rem ---------------------------------------
4 rem make <SourceFile>
5 rem ---------------------------------------
6
7
8 rem SET C51INC=C:\Keil\C51\INC\Atmel\;C:\Keil\C51\INC\
9 rem SET C51LIB=C:\Keil\C51\LIB
10 SET BINPath=C:\Keil\C51\BIN\
11
12 set Status=0
13 set SourceFile=%~nx1
14 set ObjName=%~n1
15
16 if %1 == "" goto LabErr
17 if not "%~x1" == ".c" goto LabErr
18 if "%SourceFile%" == "" goto LabErr
19 if "%ObjName%" == "" goto LabErr
20 goto LabClean
21
22 :LabBuild
23 @echo building %SourceFile% to %ObjName%
24 "%BINPath%C51.EXE" "%SourceFile%"
25 "%BINPath%BL51.EXE" "%ObjName%.obj" TO "%ObjName%"
26 "%BINPath%OH51.EXE" "%ObjName%"
27 set Status=1
28
29 :LabClean
30 if exist "%ObjName%.lst" del "%ObjName%.lst"
31 if exist "%ObjName%.m51" del "%ObjName%.m51"
32 if exist "%ObjName%.obj" del "%ObjName%.obj"
33 if exist "%ObjName%" del "%ObjName%"
34 if %Status% == 0 (
35 if exist "%ObjName%.hex" del "%ObjName%.hex"
36 goto LabBuild
37 )
38 if %Status% == 1 goto LabOK
39
40 :LabErr
41 @echo Error: The source file can not be empty.
42 goto LabEnd
43
44 :LabOK
45 @echo OK! %ObjName%.hex
46
47 :LabEnd
48
49 @echo on

 

 

 还有种生成批处理命令的方法:

    Keil uVision4带有一个生成bat文件的功能。打开工程选项在Output选项卡中,有个“Create Batch File”能生成编译bat程序。可以参照她所生成的文件自行修改。

 

如果你觉得批命令不够强大,可以自己写程序^_^

 

特别推荐:
    推荐使用AkelPad文本编辑器,有高亮语法,有简单的自动完成功能,速度比打开windows自带的文本编辑速度还快,完全免费开源。
    网站:http://akelpad.sourceforge.net/en/index.php
   

  

 

posted @ 2012-02-14 14:04  cmacro  阅读(9300)  评论(0编辑  收藏  举报