Keil综合(01)一些常见文件类型的作用和功能说明

发布者:素心静听最新更新时间:2019-06-27 来源: eefocus关键字:Keil  文件类型  功能说明 手机看文章 扫描二维码
随时随地手机看文章

前言

 

看着一大堆文件舒服吗?

 

相信大部分朋友看见过类似上图“凌乱”的现象。工程文件和编译过程文件杂乱放在一起,其实只有.uvoptx和.uvprojx这两个比较重要,其他大部分都不重要。

微主我习惯在工程文件中放一个“删除编译产生垃圾文件.bat”文件,在最后源代码存档时删除编译过程产生的文件。

 

Ⅰ、写在前面

本文说的“文件类型”指的是像.uvoptx、 .uvprojx、 .hex、 .map、

.axf、.ini、.c、.h···等一些后缀不同的文件,他们各自的作用和功能。

 

有时打开从其他地方获取的源文件,发现除了工程文件“.uvprojx”之外还有很大杂七杂八的文件,如:.crf、.d、.o···等一些让人看了都“烦躁”的源文件。

其实有很多文件都是在建立工程及编译之后产生的“中间文件”,对于我们来说,并不需要保存,只是在编译调试的过程中需要使用到。

 

当我们需要使用保存一个工程及相关源代码时,就需要把有些不必要的中间文件删除掉。于是,我们就需要知道这些文件的意思,哪些文件可以删除,哪些不能删除。

 

我们使用Go to Definition Of 使用到的文件为.crf文件,有时候Go to Definition Of不能使用(或按F12不起作用),有可能就是相关的.crf文件被删除了,或者没有。

在线调试的时候,不能跟踪调试,很有可能是没有调试类型文件。

 

Ⅱ、Keil中使用到的文件类型?

大体可以分为7类:

1、Project Files工程类型文件;

2、Source Files源代码类型文件;

3、Listing Files链接类型文件;

4、Object and HEX Files目标和Hex类型文件;

5、Build Files编译类型文件;

6、Debugger Files调试类型文件;

7、Other Files其他类型文件。

 

下面章节会将常见的一些文件类型做详细说明。

 

Ⅲ、Project Files工程类型文件

工程类型文件是比较重要的,一般不能删除。删除之后有可能打不开软件工程,所以,不能轻易删除这一类文件。

.uvmpw:多工程(工作空间)文件;

.uvprojx:工程文件(Keil V5)

.uvproj:工程文件(Keil V4)

 

.uvoptx:工程选项配置文件(Keil V5)

.uvopt:工程选项配置文件(Keil V4)

 

.uv2:工程文件(Keil V3)

 

Ⅳ、Source Files源代码类型文件

这一类源文件,我想,应该不用多说。主要就是源文件和头文件,大体上有如下一些类型:

.c、 .h、 .cpp、 .inc、 .a51、 .s、 .a66、 .src等。

 

Ⅴ、Listing Files链接类型文件

Project -> Options for Target -> Listing,如下图:

这类文件的输出就在上图的地方配置,需要输出就勾选上。常见文件类型有如下几种:

.map:MAP文件就是存储镜像文件,这个文件非常重要。当代码出现异常,对分析代码非常有帮助,我打算后面专门写一篇文章来讲述这个文件。

.i:C语言预处理器输出文件;

.lst:C编译器或汇编程序生成的文件;

.cod:包括混合C和汇编代码的完整的程序清单文件;

 

Ⅵ、Object and HEX Files目标和Hex类型文件

Project -> Options for Target -> Output,如图:

这一类文件比较重要,调试信息、预览信息、可执行文件等都在这里面。

.hex:可执行文件(和.bin类似 用于下载到芯片的程序文件);

.axf:包含调试信息的程序文件,有时候我们在调试时出现错误,可能是axf没有文件;

.d:编译生成的依赖文件,一般一个.c文件对应一个.d文件;

.o:也是目标的依赖文件(重定位定址的依赖文件);

.lib:库文件,生成库就在这里;

.elf:ELF/DWARF链接的文件;

.crf:浏览信息文件,在文章开头说了,使用Go to Definition Of 功能,就需要有这类文件。

 

Ⅶ、剩下一些类型文件

Build Files编译类型文件:

这一类文件重点提一下“bat批处理文件”,也就是说在编译的时候,可以配合bat文件一起编译。Bat文件主要就是一些命令,如拷贝、新建等。

 

Debugger Files调试类型文件:

.ini:调试加载类文件。就是在调试时加载的文件:

 

Other Files其他类型文件:

.pack:支持包文件;

.sct:链接控制文件;

.lnp:连接器传递命令文件;

·······

这类文件还有很多,重要性不强,不一一说明了。


关键字:Keil  文件类型  功能说明 引用地址:Keil综合(01)一些常见文件类型的作用和功能说明

上一篇:Keil综合(02)工程窗口各项图标描述
下一篇:Keil(MDK-ARM-STM32)系列教程(五)Configuration(Ⅰ)

推荐阅读最新更新时间:2024-11-03 21:18

搭建使用 RTX51-Tiny 的 C51 Keil 项目环境
个人记录: 没想到stc单片机除了裸板还能跑系统,有些小惊讶。 记得接触rtx51还是原来玩pSoC3(51内核)的时候,后来改成PSoC5换了arm的内核就把这部分放下了,今天偶然看到了,居然可以用stc单片机来跑,比较有意思。 mark一记。 有时间了可以对照着看看。 万方也搜了两篇文章,有空可以看看别人的设计: 基于RTX51嵌入式操作系统的智能卡电能表的设计 基于RTX51 Tiny操作系统的双人游戏设计 试了一下还挺方便和简单的。 系统的初始化 可以用main函数这样 (不太提倡) void main(void) { init_system();
[单片机]
搭建使用 RTX51-Tiny 的 C51 <font color='red'>Keil</font> 项目环境
keil中的变量和常量定位问题
变量定位:char tab1 _at_ 0x200; 赋值:在函数中赋值,如tab1 =0x01; 常量定位及初始化: 新建一个TABLE.C, 写入 char code table ={ 初始值}; KEIL定位:选择 option-- BL51 Locate, 在CODE:栏中写入如: ?CO?TABLE(0x7000) 这样,table 表就定位到了0x7000开始的程序段。
[单片机]
STM32 Keil下编程实现LED灯点亮与闪烁
前言 基于STM32F10C8T6在Keil下编程实现LED灯点亮与闪烁 一、原理图 1.STM32F103C8T6 STM32F103C8T6是ST在2007年发布的一款MCU,截止目前ST已经发布了速度高达400MHz的STM32H7。三点好处,一是封装比较大,方便初学者焊接,二是价格低廉,学习成本比较低,三是网上有大量的资料供初学者学习使用。 2.LED2 LED2控制一个绿色通讯指示灯,管脚为PB3。 3.LED3 LED3控制8个小灯点亮,管脚为PC13。 二、Keil代码 1.Led.h 代码如下: #ifndef _LED_H_ #define _LED_H_ #include stm32f10x
[单片机]
STM32 <font color='red'>Keil</font>下编程实现LED灯点亮与闪烁
Keil uVision4 for ARM添加支持C51
第一步,要有C51编译器文件(就是Keil目录下的C51文件夹),可以通过安装Keil uVison4 for C51来获得(当然不要忘记事后卸载),或者去已经安装好的电脑上复制一份。 第二步,安装Keil uVision4 for ARM,这个不解释。 第三步,在Keil uVision4 for ARM安装目录,修改TOOLS.INI,具体为在 段前面增加 段,增加内容例如下面(PATH路径需修改为实际路径,其它内容应与C51编译器文件来源处的TOOLS.INI相同): PATH= D:\Keil\C51 VERSION=V9.50a BOOK0=HLP\Release_Notes.htm( Release Notes
[单片机]
KeilC51常用功能模块使用说明
本文档包括单片机系统中常用到的时钟中断、通讯及键盘扫描等模块(见所附源程序)的说明。这些模块使用前后台系统模型。为达到最大的灵活性, 需要在用户工程中定义config.h文件, 在其中定义各模块可选参数的设置,而不是直接更改源代码。 这些可选内容大部分为宏定义,如果不定义宏相应的功能在编译时被屏蔽,不会增加代码长度。 具体可选内容见各模块中的说明。 在Config.h文件中还要包含一个单片机硬件的资源头文件。 各模块使用了定义在Common.h中的一些数据类型。如:BIT(bit) BYTE(unsigned char)等,具体请参见源程序。 时钟模块   在单片机软件设计中, 时钟是重要资源, 为了充分利用时钟资源, 故设计
[单片机]
keil中调试中无法添加变量到watch
在keil中通过JLink来在线调试STM32F103的项目,发现无论如何都不能将我要观察的变量添加到wahch窗口。真是郁闷非常。 后来发现,当运行完变量所在的子函数时,该变量的存储空间就会被释放,无法观察。所以,采用设置断点的方式,让程序停留在本子函数内部,以此来将要观察的变量添加到watch窗口之内,这样就解决了无法添加变量到watch窗口的问题。 并且,只能够添加变量来观察,如果是端口的话,则不能添加到watch的#1和#2中。但是可以通过外围设备 (Peripherals)下面的general purpose IO来查看,还可以通过工具来随意的更改IO的输出。(最好对自己的程序心中有数,知道更改哪个输出口的状态,乱改的话
[单片机]
基于51单片机设计的呼吸灯
一、项目介绍 呼吸灯是一种常见的LED灯光效果,它可以模拟人类呼吸的变化,使灯光看起来更加柔和和自然。51单片机是一种广泛使用的微控制器,具有体积小、功耗低、成本低等优点,非常适合用于控制LED呼吸灯。本项目的呼吸灯将使用PWM(脉冲宽度调制)技术控制LED亮度,从而实现呼吸灯的效果。 在本项目中,将使用51单片机作为主控制器,通过编程实现呼吸灯的控制。将使用C语言编写代码,并使用Keil C51集成开发环境进行编译和调试。使用Proteus仿真软件进行电路设计和仿真,确保电路的正确性和稳定性。 二、设计原理 2.1 PWM技术 PWM是脉冲宽度调制(Pulse Width Modulation)的缩写,是一种通过改变脉冲
[单片机]
基于51单片机设计的呼吸灯
PIC单片机芯片引脚常用符号的功能说明
有关PIC 8位单片机的产品性能和相应的封装引脚介绍后,认为对初学者而言还需了解各引脚符号的意义,才能进一步学习和使用它。笔者为此作相关的说明,以便和初学者共同提高。   一、关于I/O口符号 PIC单片机系列封装引脚最少的是8引脚(如PIC12C5XX和PIC12C6XX),多的可达84引脚(如PIC17C76X),其中I/O(输入/输出)口线按PIC单片机产品型号不同,其口线数量也不相同。8脚封装的I/O口线是6根线,而84脚封装的I/O线多达66根线。这些口线符号分别按英文字母顺序排列编号,简称A口、B口、C口、D口、E口、F口……,每个口是8位的,但不一定占满8位。这些口在封装引脚图的标注上均在各口之前加有R符号。例如
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
    做任何事情之前,一定要想好目标。没有目标的事情是做不好的,也做不成。我的目标就是学习ARM开发,当然是深入的学习。目标如下 :1、学习A ...
  • 学习ARM开发(2)
    天是星期天,刚好在家里休息。又是学习ARM的大好时机了。早上起得很早,因为都想着怎么样搞好这个ARM开发环境,总是心急的。搞得睡觉,也睡 ...
  • 学习ARM开发(4)
  • 学习ARM开发(6)
  • 学习ARM开发(7)
  • 学习ARM开发(8)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved