KEIL C51 程序编译

时间:2024-03-26 17:41:48

1.   keil目录

ASM:放置汇编语言的头文件,格式为xx.inc。inc是include的简写。

BIN :放置了编译所需的可执行文件(.exe)和动态链接库(.dll)。binary简写。

INC:放置C语言的头文件,格式为xx.h。

LIB:放置编译过程中所需的静态链接库(.lib)。library的简写。

hlp:帮助文件。help的简写。

example:例子。

RtxTiny2:keil自带的RTX51操作系统。

flashMon,MON51,MON390:目标监视器。

ISD51:调试器。

KEIL C51 程序编译


2.   BIN目录内可执行文件

C51.EXE/CX51.EXE:C语言编译器。

A51.EXE/AX51.EXE:汇编语言汇编器。

LX51.EXE/BL51.EXE:链接器/定位器。

LIB51.EXE/LIBX51.EXE:library库文件管理器。

OC51.EXE:banked objectfile转换器。

OH51.EXE/OHX51.EXE: obj-hex转换器。


3.  IDE介绍

KEIL C51 程序编译

uVision 与 Ishell 分别是 C51 forWindows 和 for Dos 的集成开发环境 (IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用 IDE 本身或其它编辑器编辑 C 或汇编源文件。然后分别由 C51 及 A51 编译器编译生成目标文件 (.OBJ)。目标文件可由 LIB51 创建生成库文件,也可以与库文件一起经 L51 连接定位生成绝对目标文件。绝对目标文件由 OH51 转换成标准的 Hex 文件。


4.  C51编译库文件

lib目录中的一些库文件。

 KEIL C51 程序编译


5.  工程项目内包含的文件

头文件.h

C 语言 .c

汇编 .asm

备份文件 .bak

预处理文件 .i

编译日志文件.plg

列表文件(包含编译的有关信息) .lst

编译生成的目标文件 .obj

连接日志文件 .lnp

连接信息文件(包含连接的有关信息) .M51

绝对(地址)目的文件 — 无后缀文件

可执行文件 .hex

keil的工程文件 uvopt和uvproj

 

6.  IDE编译过程

C 语言转换为二进制机械语言要经过四个过程:预处理,编译,汇编,连接。

预处理:编译器的预处理指令,包括宏替代,去除注释,包含文件,条件编译等;

编译:C 语言经过编译器转换为汇编语言;

汇编:汇编语言经过汇编器转换为二进制;

(每个 C 语言/汇编源文件都会生产一个二进制的目标文件)

连接:将所有目标文件通过连接器结合在一起生成可执行文件。

 

7.  命令行编译过程——cmd

(1)编写好源程序uart.c。

KEIL C51 程序编译

(2)命令语句:C51.exe  "C:\Users\john\Desktop\新建文件夹\uart.c"

调用C51.EXE对uart.c进行编译,生成列表文件.lst和目标文件uart.obj。

KEIL C51 程序编译

(3)命令语句:BL51.exe  "C:\Users\john\Desktop\新建文件夹\uart.obj"

调用BL51.EXE对uart.obj进行连接定位,生成连接信息文件.M51和绝对目标文件uart。

KEIL C51 程序编译

(4)命令语句:OH51.exe  "C:\Users\john\Desktop\新建文件夹\uart"

调用OH51.EXE对uart进行转换,生成可执行文件uart.hex。

KEIL C51 程序编译

 

8.  库文件

静态链接库.lib——包含一个或多个目标文件.obj 和索引信息等的集合文件。

一般将多个 C 语言源文件编译生成的目标文件.obj 集合起来生成库文件使用。

链接器会将目标文件.obj 与库文件.lib链接生成可执行文件。

动态链接库.dll

源文件会生成.lib 和.dll,.lib 包含动态链接库到 link 的信息,.dll 包含具体实现的代码,链接器会将.lib 加入可执行文件中.exe,编译完成后得到可执行文件.exe 和动态链接库.dll,执行.exe 时会根据需要从.dll中获取对应的代码。keil C51没有动态库文件的生成。

程序构成:

语句——函数——源文件——库——程序。

多条语句构成子函数,多个函数构成源文件,多个源文件构成库文件,源文件加库文件构成程序。