① keil c51软件的作用是什么
② 单片机应用程序的开发步骤
具体步骤如下:
1、首先,开启我们的keil软件,具体的安装步骤就不做太多的介绍了;
开启后,点击菜单栏上的Project选项,创建我们的工程,如图所示;
编译完成后,在我们的文件夹下找到.hex的文件,将其烧写到我们的芯片中即可。
③ 单片机的开发也属于交叉编译吧
交叉编译
由于计算机的指令集与ARM上的指令集不一样。所以当程序能正常在PC上执行时,不一定能正常地在ARM上执行。
一般交叉编译的过程是这样的:PC调试的程序 =====> 调试可用,通过交叉编译器将代码指令转换成对应的ARM平台代码指令 ====> 移植到ARM平台上使用。
而单片机的过程也有些像。你像这类高深的问题不会出现在单片机上。其实你要明白什么是编译。
编译就是将 高级的语言转换成机器能识别的语言。这个过程就叫编译。
单片机的C语言在平台上能运行,是因为有仿真软件。而经过编译之后,就变成单片机能执行的代码了。
而ARM不一样。PC中linux下,程序也能执行,但不是仿真。他是真正的运行。但你移植到ARM平台就不一定能执行,需要转化代码的指令。这个转换过程你可以当成是交叉编译。
其实说白了吧。没多大区别,就是转换成他们能执行的代码就对了。但只是单片机不这样叫。因为单片机的代码是没办法直接在PC上跑的。只能通过仿真软件跑。
希望我的回答对你有所帮助。
④ 交叉编译器的举例
交叉编译
1、在Windows PC上,利用ADS(ARM开发环境),使用armcc编译器,则可编译出针对ARM CPU的可执行代码。
2、在Linux PC上,利用arm-linux-gcc编译器,可编译出针对Linux ARM平台的可执行代码。
3、在Windows PC上,利用cygwin环境,运行arm-elf-gcc编译器,可编译出针对ARM CPU的可执行代码。
4、在Windows系统上,利用Keil Uvison工具,开发出运行在89C51单片机上的程序。
5、在Windows系统上,利用CodeWarrior IDE工具,开发出运行在Freescale XS128单片机上的程序。
⑤ keil c51软件的作用是什么
Keil
C51集成开发环境的主要功能有以下几点:
1.RTX-51实时操作系统:简化了复杂的实时应用软件项目的设计。
2.C51国际际准化C交叉编译器:从C源代码产生就可以重定位的目标模块。
3.LIB51库管理器:从目标模块生成连接器可以使用的库文件。
4.BL51链接器/定位器:组合由C51和A51产生的可重定位的目标模块,生成绝对目标模块。
5.A51宏汇编器:从89C51汇编源代码产生可重定位的目标模块。
6.OH51目标文件至HEX格式的转换器,从绝对目标模块生成Intel
Hex文件。
7.µVision4
for
Windows:是一个集成开发环境,它将项目管理、程序调试、源代码编辑等组合在一个功能强大的环境中。
µVision4支持所有的Keil
89C51的工具软件,其中包括C51宏汇编器、编译器、链接器/定位器和目标文件至HEX格式转换器,µVision4可以自动地完成编译、汇编、链接程序等基本的操作。还可以在编译之后进行模拟仿真调试,清楚的显示出每个变量的变化。
⑥ eclipse 怎么编译keil工程
1. 把KeilBuilder.exe复制到MDK的编译器目录下, 一般为: C:\Keil\ARM\BIN40下, 这要看你的MDK安装在哪了.
2. 新建一个C Project 工程, 并选择Cross GCC交叉编译工具为本工程编译工具.
.通过菜单File -> new -> C Project 新建一个空的C工程. 在弹出的对话框中如下图, 注意要选择"Cross GCC"工具链:
3. 为新建的工程导入Keil工程或仅导入源文件.
4. 设置Eclipse工程交叉编译环境.
.在左边的"Porject Explorer"窗口内鼠标右键单击工程名, 选择最后的菜单项"Properties"项.
.在C/C++ Build -> Settings界面中, 设置"Configuration"为"[ All configurations ]"; 设置"Cross Setttings"的"Path"即交叉工具链路径为KeilBuilder所有的目录, 如C:\Keil\ARM\BIN40. 如下图:
.在"Cross GCC Compiler"的"Command"下填入"KeilBuilder -no", 表示什么也不做; 另外的"Cross GCC Linker"及"Cross GCC Assembler"的"Command"中也设置为同值. 此设置为防Eclipse对不存在的GCC工具的报警, 如下图:
.在C/C++ Build 界面中, Builder Settings 中去掉"Use default build command"上的勾, 并在"Build command"中填入"KeilBuilder.exe -d xxxx -e". 基中xxx为工程根目录路径, "-d"表示设置KeilBuilder的工程路径, "-e"表示在编译时自动对Eclipse工程进行设置, 目前仅设置"C/C++ Build" -> "Settings" -> "Cross GCC Compiler" -> “Symbols”和”Includes”以及”Cross GCC Assmebler” -> “General”项. 如下图:
.在C/C++ Build 界面中的"Behaviour"选项卡中, 在"Build(Incremental build)"中填入"-s"表示安静编译; 在"Clean"中填入"-c"表示清理工程. 如下图:
.在C/C++ Build 中的 "Discovery Options" 中去掉 "Enable generate scanner info command"选项. 如下图:
.不用设置预编译宏或者Includes选项, 因为KeilBuilder会自动帮忙加进去. 所以, 有时候你看到代码还有一大堆的错误时, 编译一次后, 刷新工程(右键工程名 -> "Refresh")就木有错误鸟.
5. 到此, 可以编译你的工程了. 通过菜单项"Project" -> "Build All"编译工程, 或"Project" -> "Clean..."清理工程. 编译不通过或得到不正确Hex文件的继续往下看. 如下图:
6. 在Eclipse中添加一个外部工具, 这样可以通过Eclipse菜单项运行KeilBuilder, 方便.
.在Eclipse菜单中选择Run -> External Tools -> External Tools Configurations...
.在弹出的对话框中双击"Program" 增加一个外部工具.
.在Name中填入"KeilBuilder".
.在"Main"选项卡中, Location通过"Browse File System..." 选择KeilBuilder程序, 如: C:\Keil\ARM\BIN40\KeilBuilder.exe; 在Working Directory中填入KeilBuilder所在的目录, 如C:\Keil\ARM\BIN40.
.在"Build"选项卡中, 去掉"Build before launch"上的勾.
.最后单击"Apply" -> "Run"完成添加, 并运行KeilBuilder工具.
此后你就可以通过菜单Run -> External Tools -> KeilBuilder 来快速运行KeilBuilder工具了. 如下2图:
7. 经过前面4步的设置, 你的工程编译很可能会编译不通过, 或者编译出来的Hex文件下载不正确. 那是因为一些编译器/链接器选项你还没有配置.
这时, 你可以通过菜单Run -> External Tools -> KeilBuilder来运行KeilBuilder工具, 通过界面来设置这些参数. 或者也可以直接用记事本打开工程目录中的"cts.ini"(如果工程目录中不存在此文件, 请转到KeilBuilder所在的目录下的"cts.ini", 如果KeilBuilder所在目录下也没有, 那么请双击运行下KeilBuilder程序, "cts.ini"就会自动生成)对参数进行修改.
注意, 在KeilBuilder界面上设置参数时, 必须选择好自己的工程目录, 如果没有选择工程目录, 设置的结果会保存到KeilBuilder所在的目录下的"cts.ini"文件中. KeilBuilder在首次运行时, 会在其所在目录下生成cts.ini文件并设置参数为默认值. KeilBuilder在每次编译一个工程时, 如果该工程目录下发现"cts.ini", 就使用工程目录下的"cts.ini"; 如果没有发现"cts.ini"文件, 则把KeilBuilder所在目录下的"cts.ini"文件复制一份到工程目录下, 然后再编译.
关于"cts.ini"文件中的这些参数, 它对应于Keil MDK环境中的ASM编译器/C编译器/Linker选项. 因为时间问题, 在KeilBuilder中并未实现(以后有空再搞吧)类似于Keil uVision中的选项式配置. 如果熟悉这些参数最好, 不熟的话可以先在Keil uVision中配置好, 再对应添加到"cts.ini"中.
在"cts.ini"文件中的"ASM=" 后面的内容对应于Keil uVision工程选项中的"Asm"选项.
在"cts.ini"文件中的"CC=" 后面的内容对应于Keil uVision工程选项中的"C/C++"选项.
在"cts.ini"文件中的"LNK=" 后面的内容对应于Keil uVision工程选项中的"Linker"选项.
8. 设置"cts.ini"文件中的编译选项确实不是一般人能搞定. 我也不懂(谁懂的做个说明分享下吧, 可以的话还能集成为UI, 更方便). 因为人懒, 不想去深究这些编译(链接)器选项, 于是想到了个折中的办法: 通过Keil uVision来设置好这些参数并编译工程, 然后把它实时的编译选项显示出来以供参考! 这样当编译选项无法搞定时, 就把整个工程交给keil uVision来编译一次, 然后参考实时获取的参数再对Eclipse工程的"cts.ini"文件做相应的修改就OK了.
在keil uVision中捕获它的编译选项, 需要做如下的设置. 在工程属性"Options for Target xxxx"的"User"选项卡中 设置keil编译后运行”KeilBuilder.exe -p”. 表示捕获keil uVision编译选项, 如下图:
⑦ keil的C语言编译器是不是GCC,怎么查看
不是,keil的编译器是交叉编译器,是和芯片相关的,你创建过程的时候选择的芯片,其实就有编译器(当然还有其它的东西),所以有的芯片keil上没有还需要安装额外的包才行。
⑧ 嵌入式系统开发为什么要采用交叉编译的方式
由于嵌入式系统资源匮乏,一般不能像PC一样安装本地编译器和调试器,不能在本地编写、编译和调试自身运行的程序,而需借助其它系统如PC来完成这些工作,这样的系统通常被称为宿主机。宿主机通常是Linux系统,并安装交叉编译器、调试器等工具;宿主机也可以是Windows系统,安装嵌入式Linux集成开发环境。在宿主机上编写和编译代码,通过串口、网口或者硬件调试器将程序下载到目标系统里面运行。所谓的交叉编译,就是在宿主机平台上使用某种特定的交叉编译器,为某种与宿主机不同平台的目标系统编译程序,得到的程序在目标系统上运行而非在宿主机本地运行。这里的平台包含两层含义:一是核心处理器的架构,二是所运行的系统,这样,交叉编译有3种情形:(1)目标系统与宿主机处理器相同,运行不同的系统;(2)目标系统与宿主机处理器不同,运行相同的系统;(3)目标系统与宿主机处理器不同,运行不同的系统。实际上,在PC机上进行非Linux的嵌入式开发,哪怕使用IDE集成环境如Keil、ADS、Realview,都是交叉编译和调试的过程,只是IDE工具隐藏了细节,没有明确提出这个概念而已。