使用命令行编译C51源程序

Return0623360 2015-01-23 02:40:24
希望能使用命令行的方式来编译C51源程序,遇到的问题是:设备有多种不同的型号的硬件,所以就有不同的驱动,我想在编译的时候,能像在linux下的makeile那样,自己写一个宏定义编译连接的东西,用批处理实现,求大神指点一下,这方面的资料太少!下面使使用命令行编译的代码,实在不知道用批处理怎么实现宏定义的选择,以及将所选的宏定义与单片机源程序一起编译。
set PATH=%PATH%;G:\develop\keil\C51\BIN;G:\develop\keil\C51\INC;G:\develop\keil\C51\LIB
set C51_LIB=G:\develop\keil\C51\LIB\
(注:其中的G:\develop\keil目录要改成本机安装keil的位置)
set DST_NAME=obj\output (注:指定输出文件名)
set DIR=D:\source (注:指定源文件所在目录)
echo 转向工作目录
d: (注:源文件所在区)
cd %DIR%
echo 编译文件...
c51 a.c
c51 b.c
c51 c.c
c51 d.c
md obj
echo 链接目标文件...
BL51 %C51_LIB%C51s.lib,a.obj,b.obj,c.obj,d.obj,EXTERN_LIB.obj TO %DST_NAME% RAMSIZE(256) CODE(?CO?c(FC00H), ?CO?d(FFD0H))
(注:EXTERN_LIB.obj文件是已经编译好的obj文件,用于编译部分模块只有目标代码的项目,RAMSIZE等是一些链接设置,详细信息请参考C51\HLP\A51.pdf)
echo 生成HEX文件...
OH51 %DST_NAME%
echo 编译结束
cd \

...全文
495 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
下午两点半 2018-07-05
  • 打赏
  • 举报
回复
最近把IDE换成只能写ARM的,需要用51单片机的时候很是难受,找了找资料发现命令行下编译行得通,需要keil安装的C51、UV4文件夹,将C51文件夹下的bin目录添加到环境变量中,写了一个批处理文件,可以实现命令行下编译C51程序

@echo off
echo 编译文件%1 ...

C51 %1.c

mkdir OBJ
move %1.obj OBJ
cd OBJ

echo 链接目标文件 ...
BL51 %1.obj TO %1

echo 生成HEX文件 ...
OH51 %1

echo 编译结束,返回原始目录
cd ..
Return0623360 2015-01-26
  • 打赏
  • 举报
回复
没有满意答案啊!!!
Return0623360 2015-01-23
  • 打赏
  • 举报
回复
引用 1 楼 jltsun 的回复:
MARK 也一直想了解这方面的内容。期待有高手指点!!!
希望有大神指点啊!批处理在C51编程实现方面的资料太少,但还是很有实际用处的。。。
Return0623360 2015-01-23
  • 打赏
  • 举报
回复
引用 2 楼 worldy 的回复:
为什么要用命令行?IDE有什么不好?
1.每次做个试验都要建立一个工程,而且会出现一堆文件; 2.Keil的编辑器对中文的支持并不太好; 3.由于改动并不一定在已打开IED的情况较多,每次都必须打开Keil编译,不嫌麻烦啊; 4.最最最主要的还是想简单方便点,我的应用场景是每次都只需要HEX文件就可以了,那么写个批处理不是能够直接编译出HEX文件(这样也可以防止没有安装IDE的电脑)。 所以,希望有大神可以指点一下。。。
worldy 2015-01-23
  • 打赏
  • 举报
回复
为什么要用命令行?IDE有什么不好?
jltsun 2015-01-23
  • 打赏
  • 举报
回复
MARK 也一直想了解这方面的内容。期待有高手指点!!!

27,514

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧