C51多文件编译脚本,彻底摆脱Keil古董级IDE
C51单片机编译成HEX文件的脚本网上有很多,如下给出一段示例:
@ECHO OFF
SET KEILPATH=C:\Keil_v5\C51\BIN
%KEILPATH%\C51.exe %1.c
%KEILPATH%\LX51.exe %1.obj to %1.abs
%KEILPATH%\OHx51.exe %1.abs
DEL %1.lst
DEL %1.obj
DEL %1.map
DEL %1.abs
::TIMEOUT /T 3
PAUSE
这个脚本虽然可以正常使用,但是却必须把工程中所有C文件的内容包含到main.c文件中,这样不仅不利于各个模块的分离,而且特别容易产生重定义以及多级包含的问题,或者要求把所有代码写到一个文件里,极度难以使用,这里做了非常好用的修改,将不同的C文件分开编译再链接,符合使用习惯,也有利于模块的移植,最最重要的是可以彻底摆脱Keil古董的没有自动补全的IDE,真是太爽了!
实例BAT脚本如下,可能需要做少许修改:
@ECHO OFF
set KEILPATH=C:\Keil_v5\C51\BIN
cd %~dp1
for %%a in (*.c) do (
%KEILPATH%\C51.exe %%a
)
setlocal enabledelayedexpansion
for %%a in (*.obj) do (
set str=!str!%%a,
)
%KEILPATH%\LX51.exe %str:~0,-1% to %1.abs
endlocal
%KEILPATH%\OHx51.exe %1.abs
for %%a in (*.lst) do (
DEL %%a
)
for %%a in (*.obj) do (
DEL %%a
)
DEL %1.map
DEL %1.abs
::TIMEOUT /T 3
PAUSE