编译C51项目的bat脚本

来源:互联网 发布:hadoop2.6源码阅读 编辑:程序博客网 时间:2024/05/16 06:18

使用bat编译C51项目

rem 使用bat编译C51项目@echo off&setlocal enabledelayedexpansionset BIN_PATH=E:\Tools\Keil\C51\set path=%BIN_PATH%BIN;%path%rem SET TMP=D:\TMPSET C51INC=%BIN_PATH%INCSET C51LIB=%BIN_PATH%LIBrem c51 start.cfor %%a in (%~dp0\src\*.c) do (    C51.exe %%a    )set CLASSPATH="EMP"for %%a in (%~dp0\src\*.OBJ) do (      if !CLASSPATH! == "EMP" (        set CLASSPATH="%%a"      ) else (        set CLASSPATH=!CLASSPATH!,"%%a"      )    )if not exist bin mkdir binBL51.exe %CLASSPATH% TO "bin\target.tmp" RAMSIZE(256)OH51.exe bin\target.tmprem 删掉生成的临时文件for %%a in (%~dp0\src\*.obj) do (    del %%a    )for %%a in (%~dp0\src\*.lst) do (    del %%a    )for %%a in (%~dp0\bin\*.tmp) do (    del %%a    )for %%a in (%~dp0\bin\*.m51) do (    del %%a    )rem pause

项目结构

这里写图片描述

Powershell版

$BIN_PATH = "E:\Tools\Keil\C51"$env:Path = $env:Path + ";$BIN_PATH\BIN"$env:TMP$env:C51INC = "$BIN_PATH\INC"$env:C51LIB = "$BIN_PATH\LIB"$partternErr = ' 0 ERROR\(S\)'$partternWarn = ' 0 WARNING\(S\)'Function analyseResult($result){    $msg = $result[($result.Length - 1)]    if($msg -notmatch $partternErr){        echo $result        exit    }    if($msg -notmatch $partternWarn){        echo $result    }}# 判断并创建目录"build","bin" | ForEach-Object {    if(!(Test-Path $_)){        New-Item -ItemType Directory $_    }}# 复制源文件copy src\*.* build\# 编译*.c文件cd buildls *.c | ForEach-Object {    echo "build $_"    $result = C51.EXE $_.Name BROWSE DEBUG OBJECTEXTEND    analyseResult($result)}# 删除源文件"*.c","*.h" | ForEach-Object {    ls $_ | ForEach-Object {        del $_.Name    }}# 链接*.obj文件$OBJ_PATH = "TEM"ls *.obj | ForEach-Object {    if($OBJ_PATH -eq "TEM"){        $OBJ_PATH = "`"$_`""    }else{        $OBJ_PATH = $OBJ_PATH+",`"$_`""    }}echo "link $OBJ_PATH"$result = BL51.exe $OBJ_PATH TO "build.tmp"analyseResult($result)# 生成*.hex文件echo "gen build.hex"$result = OH51.exe build.tmp#analyseResult($result)# copy .hex to bincd ..copy build\build.hex bin\target.hexecho "`nSUCCESS"# pause
0 0
原创粉丝点击