日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

让SlickEdit 自动编译Keil C51工程

發布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 让SlickEdit 自动编译Keil C51工程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

讓SlickEdit 自動編譯Keil C51工程

吳宏偉 2012-2-10

?

上一篇文章已經講了如何手動調用Keil的C51編譯器來編譯我們的工程,今天跟大家說說如何在SlickEdit環境下配置編譯命令。

  • 首先新建一個SlickEdit工程

    假設工程路徑為"D:\51",在Build System界面下選擇第二個選項,

  • 配置 Build 命令的 Command Line為D:\51\automake.cmd,此文件內容下面將貼出來。

    ?

    ????

    這樣便完成了配置過程。其實最核心的地方就在automake.cmd文件,下面將對此文件的關鍵內容做一些講解。

  • 關鍵內容講解

    (1)變量聲明:SET PROJECT=D:\51 聲明PROJECT變量的值為D:\51,之后需要引用此變量時,需用%PROJECT%。

    (2) 變量值替換,格式為,%VAR:oldstr=newstr%, VAR為變量名,oldstr將替換成newstr;

    ????例:SET OUTPUT=D:\51\51.hex,則%OUTPUT:.hex=% 將為 D:\51\51,即把.hex替換成空字符串。

    (3)文件枚舉,格式為:for /r "PATH" %%i in (*.c) do (….)

    ????/r表示搜索子目錄,"PATH"為所要搜索的文件,*.c為所要搜索的類型。 Do 后面填寫所要執行的操作。

    (4)for循環內的變量多次賦值:

    在for語句里面重復對同一變量多次賦值時才需要使用"!",并且在使用"!"調用變量時,要首先"啟用延遲環境變量擴充",啟動命令為:SetLocal EnableDelayedExpansion。另外需要說明的是,"啟用延遲環境變量擴充"后,所有的"!"都將被視為"取變量值"的特殊符號,即使用"^!"也不能輸出符號"!"。若要輸出"!",則需要"停用延遲環境變量擴充",命令為:SetLocal DisableDelayedExpansion。

  • 使用此文件來編譯工程有以下幾點需要注意:
  • 工程路徑包括文件名中不能含有空格;
  • 所要編譯的文件只能是同一類型的文件,如都是C文件,或者都是ASM文件;
  • Automake.cmd文件的內容如下:

    @echo off

    @rem 本批處理可自動編譯PROJECT目錄下(包括子目錄)下的.C文件,并生成OUTPUT文件

    ?

    @rem 本文件由HomeWay編寫,潮風工作室, 2012/2/10

    ?

    @rem 環境變量定義

    @rem 請根據本機情況修改以下變量

    PATH=D:\KEIL4\C51\BIN;%PATH%

    SET C51INC=D:\KEIL4\C51\INC

    SET C51LIB=D:\KEIL4\C51\LIB

    ?

    @rem 工程所在目錄

    SET PROJECT=D:\51

    ?

    @rem 輸出文件

    SET OUTPUT=D:\51\51.hex

    ?

    ?

    @rem 枚舉所有.C文件并編譯

    set OBJ=

    SetLocal EnableDelayedExpansion

    for /r "%PROJECT%" %%i in (*.c) do (

    set OBJ=!OBJ!%%i,

    %rem compile the project files

    C51 %%i

    IF ERRORLEVEL 2 GOTO :FAILED

    IF ERRORLEVEL 3 GOTO :FAILED

    )

    ?

    ?

    %rem 鏈接所有OBJECT文件

    echo LINK:%OBJ:.c=.obj%%C51LIB%\C51S.lib

    BL51 %OBJ:.c=.obj%%C51LIB%\C51S.lib TO %OUTPUT:.hex=% RAMSIZE(256)

    ?

    IF ERRORLEVEL 2 GOTO :FAILED

    IF ERRORLEVEL 3 GOTO :FAILED

    ?

    %rem 生成HEX文件

    OH51 %OUTPUT:.hex=% HEXFILE(%OUTPUT%)

    goto :SUCCESS

    ?

    :FAILED

    echo 編譯失敗!

    exit 1

    ?

    :SUCCESS

    ?

    %rem 清除所有的臨時文件

    del %OUTPUT:.hex=%

    for /r "%PROJECT%" %%i in (*.obj) do del %%i

    for /r "%PROJECT%" %%i in (*.lst) do del %%i

    for /r "%PROJECT%" %%i in (*.m51) do del %%i

    ?

    echo 編譯成功!輸出文件為:%OUTPUT%

    exit 0

    ?

    本文章的演示文件下載:http://files.cnblogs.com/chaofeng/51-Se-Demo.zip

  • 轉載于:https://www.cnblogs.com/chaofeng/archive/2012/02/10/2346174.html

    總結

    以上是生活随笔為你收集整理的让SlickEdit 自动编译Keil C51工程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。