keil生成单片机文件

2017-02-23 16:08:43 u014453898 阅读数 53614

0.C51单片机运行的文件

1.建立工程

2.创建文件并把文件加入工程中

3.生成hex文件


0.C51单片机运行的文件

直接烧写进C51芯片的文件是HEX文件,所以要通过KEIL把源代码编译成HEX文件


1.建立工程

打开KEIL后,点解project(项目)中的New uVision Project:

然后填写项目的名字并选择保存的地方:

再选择芯片,选择Atmel 下的AT89S52(AT89C51 ,AT89S51都行,这些结构大同小异)



2.创建新文件并加到项目中:

这里的新文件指的是代码文件。

1.在左上角有如下标志,点击一下即可创建新文件:


2.按ctrl+s保存文件,保存的地方位项目所在的同一个文件夹,并且填写文件的名字,注意这里必须加.c,因为代码是c语言文件


3.第二步的操作只是把文件放到与项目一起的地方,都没把文件放到项目中。下面把文件加到项目中:

在project栏中,右键Source Group 1,选择红框的选项:

选择要加入到项目中的文件:

点击Add 即可。

成功的标志是Source Group 1下出现了文件要加入的文件(我的是led.c)


3.生成HEX文件:

在写好文件后,点击工具栏上的红框标志:

选择Output(输出),把Create HEX File 勾上,点击OK


然后工具栏上点击编译按钮就可以了


然后打开项目所在文件夹,然后发现.hex文件,如果没有,看看当前文件夹下有没有Objects文件夹,hex也有可能在Objects文件夹里生成。

然后通过烧写软件就可以把HEX文件烧到C51芯片中。

2015-08-02 21:41:43 yunfeiyang62 阅读数 38482

Keil 下生成LIB库文件以及如何使用LIB库文件

如何生成LIB库文件?

1.   首先准备好生成LIB库文件对应的.c和.h文件,我这里用到的.c和.h文件分别是:

commLib.h:

 

/*======================================================*/
/* 延时函数,单位ms										*/
/* 晶振频率为11.0592MHz时延时1ms子程序 					*/
/*======================================================*/
void delay(int ms);

/*======================================================*/
/* 循环左移函数	2015年7月27日 21:34:44			 		*/
/*======================================================*/
unsigned char ccCrol(unsigned char org, unsigned char bitNum);

/*======================================================*/
/* 循环右移函数	2015年7月29日 21:40:39		 			*/
/*======================================================*/
unsigned char ccCror(unsigned char org, unsigned char bitNum);


commLib.c:

/*======================================================*/
/* 延时函数,单位ms										*/
/* 晶振频率为11.0592MHz时延时1ms子程序 					*/
/*======================================================*/
void delay(int ms)
{
	int i, j;

	for (i = ms; i > 0; i--)
	{
		for (j = 110; j > 0; j--)
		{
		}
	}
}

/*======================================================*/
/* 循环左移函数	2015年7月27日 21:34:44		 			*/
/*======================================================*/
unsigned char ccCrol(unsigned char org, unsigned char bitNum)
{
	unsigned char i;
	unsigned char high, low;
	unsigned char after = org;
	
	for (i = 0; i < bitNum; i++)
	{
		high = after & 0x80;
		low = high >> 0x07;
		after <<= 0x01;
		after |= low;
	}
	
	return after;
}

/*======================================================*/
/* 循环右移函数	2015年7月29日 21:40:39		 			*/
/*======================================================*/
unsigned char ccCror(unsigned char org, unsigned char bitNum)
{
	unsigned char i;
	unsigned char high, low;
	unsigned char after = org;
	
	for (i = 0; i < bitNum; i++)
	{
		low = after & 0x01;
		high = low << 0x07;
		after >>= 0x01;
		after |= high;
	}
	
	return after;
}


2.        新建一个项目,将这两个文件添加到袄项目中,并做以下设置:

选中Create Library

 


3.        编译之后就可在项目目录下生成对应的.LIB库文件了。

 


如何使用LIB库文件呢?

1.        新建一个项目,然后在你的项目中包含LIB库文件对应的头文件commLib.h。

如图:


2.        添加LIB库文件到项目中:


然后选择你要添加的LIB库文件:



添加完成之后就可以在项目中看到对应的库文件了:


3.        编译项目就OK了。

2019-10-27 14:11:08 pangyinglong 阅读数 85

准备知识:axf文件是ARM芯片使用的文件格式,它除了包含bin代码外,还包括了输出给调试器的调试信息,例如每行C语言所对应的源文件行号等

根据上面的知识,可以得到51单片机是没有axf文件的。

Keil生成bin的配置

fromelf.exe --bin -o "$L@L.bin" "$L@L.axf"

fromelf.exe可执行文件负责把axf文件生成bin文件

$表示取路径,@表示取名字,L表示axf文件路径

参考链接:https://blog.csdn.net/qlexcel/article/details/85097355

2016-11-07 21:59:54 u010980705 阅读数 2509

keil生成bin文件详解

  (2015-04-13 18:49:18)
标签: 

keil生成bin

 

fromelf.exe

 

stm32bin

 
分类: 软件
在下图这里输入如下命令:
keil生成bin文件详解

D:\Keil\ARM\BIN40\fromelf.exe  --bin -o  ..\OBJ\TEST.bin ..\OBJ\TEST.axf

解释:
D:\Keil\ARM\BIN40\fromelf.exe:表示fromelf.exe工具的位置,这个工具就是根据TEST.axf文件生成bin文件的。
 --bin -o  :生成bin文件的命令
..\:代表项目文件所在目录的上一级目录,这个是相对目录,用来寻找定位OBJ这个文件夹的
.\:代表工程项目文件所在的目录
..\..\:代表项目文件所在目录的上两级目录
以此类推..

其中也可以用./      ../      ../../,这个是没有区别的

在程序编译时自动执行这条命令,然后在OBJ文件夹内生成相应的bin文件。

还有一个方法就是在那里直接输入fromelf.exe --bin -o "$L@L.bin" "#L"
直接在相应的文件夹内生成相应的bin文件

以上命令在keil4.22和keil5.11下均测试成功。
2018-10-29 13:10:10 tyustli 阅读数 4355

一、Keil生成bin文件

1、右键工程名,选择:Option For Target"xxx" 或者直接点击魔术棒 

2、选择User:

3、选择After Build/Rebuild下的 Run#1如上图所示

 

4、添加路径:"D:\keil for arm\ARM\ARMCC\bin\fromelf.exe" --bin --output ..\OBJ\rfid.bin ..\OBJ\RFID.axf

该指令是根据本机及工程的配置而写的,在不同的系统环境或不同的工程中,指令内容都不一样,要移植到自己的工程中需要理解它。

4.1、D:\keil for arm\ARM\ARMCC\bin\fromelf.exe是自己的Keil的安装路径

下图是DOS命令行查看的fromelf的帮助:

从上图可以看出fromelf的格式为:fromelf  [options]  input_file

其中options是指令选项,一个指令支持输入多个选项,每个选项之间使用空格隔开

4.2、“--bin”选项设置输出bin文件,

4.3、"--output"选项设置输出文件名和输出文件路径,

4.4、“..\OBJ\rfid.bin”这个名字是一个绝对路径格式,..\表示工程所在路径的上一级路径 所以这个语句的含义就是工程文件路径上一级路径下OBJ文件夹下,生成rfid.bin文件(这里注意自己的工程文件的路径和生成文件的路径的差别)

4.5、“ ..\OBJ\RFID.axf”输入文件路径,同理路径是工程文件路径上一级目录OBJ文件夹下面的文件RFID.axf。

5、编译

 

 注意:如果生成bin文件错误可查看下图工程文件名是否设置正确

 

二、Keil生成hex文件

方法1、用上面同样的方法也可以生成hex文件 不过较为复杂

方法2、MDK提供了图形化界面生成hex文件如下图只需勾选后,编译即可生成hex文件

编译运行后的结果是:

 3、使用命令行生成 RFID.axf对应的bin文件和hex文件

1、准备工作:将自己keil安装路径下对应的转换工具的路径添加到电脑系统变量的path中

1.1、D:\keil for arm\ARM\ARMCC\bin这个就是我自己的keil编译器的路径

1.2、添加环境变量:右键我的电脑->属性->高级系统设置->高级->环境变量

1.3、找到PATH(如果没有可以新建)->编辑 将上面自己的路径复制过来,注意复制的语句前后都要加上;号并确定

这样环境变量就设置好了

设置环境变量的目的是为了查找文件的时候先默认去路径里面查找,这样使用命令的时候不用每次都输入命令的路径,当然每次都输入文件的路径也是可以的,只是这样比较麻烦

2、将自己工程的.axf文件复制到一个你要生成bin文件和hex文件夹的文件夹中

2.1、shift+右键 选择在此处打开命令窗口

2.2 输入fromelf并回车,看能不能打开,如果出现下图窗口表示第一步环境变量添加正确,否则,检查一下第一步环境变量是否设置正确
 

2.3、可以根据提示输入命令生成bin文件和hex文件

 

生成的bin文件和hex文件如下图: