手动编译链接生成c51的hex文件

这个纯粹是个人爱好。现在系统的UI的做得越来越好,但还是莫名的喜欢那个命令行,算是种怀旧吧。

再次声明:该举动仅为个人爱好而已

虽然是手动编译,但还是需要个keil安装后的环境。

详细步骤:


1.用记事本或者notepad++编写超简单的代码

例如:

#include <reg52.h>

sbit L1 = P1^2;

void main()

{

     L1 = 0;

     while(1);

}

保存为test.c

这个源码最好建立到keil\C51\BIN目录下,避免敲过多的路径。

2.cmd 下进入keil 安装目录 keil\C51\BIN

执行如下命令:

c51x test.c

lx51 test.obj TO test.abs

ohx51 test.abs   

注意“ohx51”是字母“o”。然后看看当前目录下有没有hex文件,呵呵

我用STC89C52测试的流水灯成功了。大的没试,不知道效果如何。


还有就是针对多个文件的操作。

源码是必须的。假设有两个源码文件 example.c  sexample.c 。分别用c51x生成obj文件

操作为:

c51x example.c

c51x sexample.c

然后再用lx51.这里是个关键,因为有两个文件。网上也有因吐槽keil的代码编辑不方便,转而在VS2010写C51代码的,但是配置好后却发现只能对一个文件进行编译,无法对多个文件进行编译。这个地方就是关键。我在网上找到的配置方法,对lx51的参数是这么写的:

$(ItemDir)$(ItemFileName).obj TO $(ItemDir)$(ItemFileName).abs

看起来没问题,但估计是传递参数的时候,没有把所有的obj文件名传递,所以出问题了。这个可以手动试试。操作如下:

lx51 example.obj sexample.obj To hello.abs

最后一步自然是生成hex文件

ohx51 hello.abs

烧录试试吧:)


参考帖子:

在vs2010里面编辑keil代码的问题

http://bbs.csdn.net/topics/380233788?page=1


你可能感兴趣的:(手动编译链接生成c51的hex文件)