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:调试器。
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介绍
uVision 与 Ishell 分别是 C51 forWindows 和 for Dos 的集成开发环境 (IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用 IDE 本身或其它编辑器编辑 C 或汇编源文件。然后分别由 C51 及 A51 编译器编译生成目标文件 (.OBJ)。目标文件可由 LIB51 创建生成库文件,也可以与库文件一起经 L51 连接定位生成绝对目标文件。绝对目标文件由 OH51 转换成标准的 Hex 文件。
4. C51编译库文件
lib目录中的一些库文件。
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。
(2)命令语句:C51.exe "C:\Users\john\Desktop\新建文件夹\uart.c"
调用C51.EXE对uart.c进行编译,生成列表文件.lst和目标文件uart.obj。
(3)命令语句:BL51.exe "C:\Users\john\Desktop\新建文件夹\uart.obj"
调用BL51.EXE对uart.obj进行连接定位,生成连接信息文件.M51和绝对目标文件uart。
(4)命令语句:OH51.exe "C:\Users\john\Desktop\新建文件夹\uart"
调用OH51.EXE对uart进行转换,生成可执行文件uart.hex。
8. 库文件
静态链接库.lib——包含一个或多个目标文件.obj 和索引信息等的集合文件。
一般将多个 C 语言源文件编译生成的目标文件.obj 集合起来生成库文件使用。
链接器会将目标文件.obj 与库文件.lib链接生成可执行文件。
动态链接库.dll
源文件会生成.lib 和.dll,.lib 包含动态链接库到 link 的信息,.dll 包含具体实现的代码,链接器会将.lib 加入可执行文件中.exe,编译完成后得到可执行文件.exe 和动态链接库.dll,执行.exe 时会根据需要从.dll中获取对应的代码。keil C51没有动态库文件的生成。
程序构成:
语句——函数——源文件——库——程序。
多条语句构成子函数,多个函数构成源文件,多个源文件构成库文件,源文件加库文件构成程序。