zoukankan      html  css  js  c++  java
  • 用c51命令行编译HEX单片机文件

    刚开始学STC51单片机的开发,用Keil uVision4进行编辑和编译。Keil的IDE是使用工程方式组织,对于小弟初学并不是很方便。

    • 每次做个试验都要建立一个工程,而且会出现一堆文件。
    • 虽然电脑还可以,感觉启动IED比较慢
    • Keil的编辑器对中文的支持并不太好
    • 由于改动并不一定在已打开IED的情况比较多,每次都必须打开Keil编译,郁闷的很。
    • 最最最主要的还是想简单方便点

    出于上面的目的看了一下Keil的帮助,^_^ 发现用批处理可以解决我的烦恼。Keil的安装目录有C51和UV4,很明显一个是编译工具目录,另外一个是IED程序目录。外国的产品就是做的好,帮助文档做的非常全而且详细。

    用命令行流程是 编译源文件成OBJ,然后链接OBJ,之后转换成HEX文件。这样就OK了,很简单。
    C51.exe 编译c文件,BL51.EXE链接OBJ, OH51.EXE转换文件成HEX。

    注意:不要忘记吧头文件复制到 \C51\INC 库目录中,以后使用比较方便。

    如:有个test.c的文件

    C51.EXE test.c
    BL51.EXE test.obj TO test
    OH51.EXE test

    这样就OK,能编译出HEX文件。

    不过这样每次写批命令还不是很方便,干脆就写一个简单的批程序 ^_^,挂编辑器上直接编译。

    再吧批命令挂接到代码编辑器上,以后只要打开文件就能直接编译。 如果有问题可以直接看log文件。

    运行一下就自动编译!


    大功告成!VVVV 本人比较懒^^

    批处理文件就直接贴批代码,就不多解释了。

    注意:这个批代码只能编译单个C文件,并没有强化。

    编译批处理
     1 @echo off
    2
    3 rem ---------------------------------------
    4 rem make <SourceFile>
    5 rem ---------------------------------------
    6
    7
    8 rem SET C51INC=C:\Keil\C51\INC\Atmel\;C:\Keil\C51\INC\
    9 rem SET C51LIB=C:\Keil\C51\LIB
    10 SET BINPath=C:\Keil\C51\BIN\
    11
    12 set Status=0
    13 set SourceFile=%~nx1
    14 set ObjName=%~n1
    15
    16 if %1 == "" goto LabErr
    17 if not "%~x1" == ".c" goto LabErr
    18 if "%SourceFile%" == "" goto LabErr
    19 if "%ObjName%" == "" goto LabErr
    20 goto LabClean
    21
    22 :LabBuild
    23 @echo building %SourceFile% to %ObjName%
    24 "%BINPath%C51.EXE" "%SourceFile%"
    25 "%BINPath%BL51.EXE" "%ObjName%.obj" TO "%ObjName%"
    26 "%BINPath%OH51.EXE" "%ObjName%"
    27 set Status=1
    28
    29 :LabClean
    30 if exist "%ObjName%.lst" del "%ObjName%.lst"
    31 if exist "%ObjName%.m51" del "%ObjName%.m51"
    32 if exist "%ObjName%.obj" del "%ObjName%.obj"
    33 if exist "%ObjName%" del "%ObjName%"
    34 if %Status% == 0 (
    35 if exist "%ObjName%.hex" del "%ObjName%.hex"
    36 goto LabBuild
    37 )
    38 if %Status% == 1 goto LabOK
    39
    40 :LabErr
    41 @echo Error: The source file can not be empty.
    42 goto LabEnd
    43
    44 :LabOK
    45 @echo OK! %ObjName%.hex
    46
    47 :LabEnd
    48
    49 @echo on

     还有种生成批处理命令的方法:

        Keil uVision4带有一个生成bat文件的功能。打开工程选项在Output选项卡中,有个“Create Batch File”能生成编译bat程序。可以参照她所生成的文件自行修改。

    如果你觉得批命令不够强大,可以自己写程序^_^

    特别推荐:
        推荐使用AkelPad文本编辑器,有高亮语法,有简单的自动完成功能,速度比打开windows自带的文本编辑速度还快,完全免费开源。
        网站:http://akelpad.sourceforge.net/en/index.php
       

      

  • 相关阅读:
    Linux统计文件个数
    python string与list互转
    Python中请使用isinstance()判断变量类型
    xpath提取多个标签下的text
    内存盘
    Watchdog
    渗透测试
    GMT与UTC简介
    ASN.1(抽象语法标记)
    Linux nmap
  • 原文地址:https://www.cnblogs.com/gleam/p/2350990.html
Copyright © 2011-2022 走看看