2024年4月7日发(作者:)
第4章 keil uvision4教程
本章主要内容:
Keil C51的简介
Keil uvision4的安装
Keil uvision4的创建应用程序
本章主要从简单介绍了
Keil C51
,以及Keil uvision4的安装和如何在Keil中创建应用
程序。
4.1 Keil C51的简介
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与
汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的
完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件
需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几
乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强
大的软件仿真调试工具也会令你事半功倍。
使用汇编语言或C语言要使用编译器,以便把写好的程序编译为机器码,才能把HEX
可执行文件写入单片机内。KEIL uVISION是众多单片机应用开发软件中最优秀的软件之一,
它支持众多不同公司的MCS51架构的芯片,甚至ARM,它集编辑,编译,仿真等于一体,
它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方
面也有很强大的功能。因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分
喜欢。
2009年2月发布Keil μVision4,Keil μVision4引入灵活的窗口管理系统,使开发
人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。
新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效
的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。
2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了
最新版本的Keil μVision4,其编译器、调试工具实现与ARM器件的最完美匹配。
µVision4在µVision3的成功经验的基础上增加了:
System Viewer (系统查看程序)窗口,提供了设备外围寄存器信息,这些信
息可以在System Viewer窗口内部直接更改。
Debug Restore Views (调试恢复视图)允许保存多个窗口布局,为程序分析
迅速选择最适合的调试视图。
Multi-Project Workspace(多项目工作空间)为处理多个并存的项目提供了
简化的方法,如引导加载程序和应用程序。
扩展了Device Simulation(设备仿真)功能以支持许多新设备,如Luminary、
NXP和东芝生产的基于ARM Cortex-M3处理器的MCU;Atmel SAM7/9;及新的
8051衍生品,如Infineon XC88x和SiLABS 8051Fxx。
支持许多debug adapter interfaces(调试适配器接口),包括ADI miDAS Link、
Atmel SAM-ICE、Infineon DAS和ST-Link。
3.2 Keil uvision4的安装
第1步:运行安装程序
第2步:完成安装过程
第3步:双击运行刚安装完毕的Keil uVision4,进入Keil uVision4的集成编
辑环境
第4步:单击选择菜单“Debug”-->"Start/Stop Debug Session" (如果跳出
下图提示框:****Limit : 32K,则说明此软件没有获得序列化,只能编译code
32K一下的程序,如果没有弹出,说明以下步骤可省略)
第5步:(破解开始)单击选择菜单“File”-->"License Management" 将弹出
下面一张图的界面:复制其中CID号,以便在黏贴到第6步中的破解软件中
第6步:运行破解软件,将出现下面一张图的界面,把上步复制的CID号黏贴到
相应位置,其他选项如图,然后点击“Generate”按钮,然后复制产生的序列号,
黏贴到第5步的下面一张图的LIC输入框中,然后点击右侧的Add LIC,即可完
成破解
3.1.1 创建应用程序
µVision包含一个工程管理器,它使得设计ARM微控制器的嵌入式应用程序更加方便。
创建应用程序,必须先创建对应的工程。为了创建一个新的工程,必须按如下步骤实现:
1.
2.
双击图标,运行µVision。
创建一个工程文件,从设备数据库中选择一个CPU芯片。下面以名为test的工程
为例创建工程文件。
单击Project ->->µVision Project菜单项,µVision 4将打开一个标准对话框,输入希望
新建工程的名字即可创建一个新的工程,建议对每个新建工程使用独立的文件夹。例如,这
里先建立一个新的文件夹,然后选择这个文件夹作为新建工程的目录,输入新建工程的名字
test,µVision将会创建一个以为名字的新工程文件。
创建完了工程文件之后,从设备数据库中选择一个CPU芯片。例如,选择AT89C52微
控制器,如图所示:
图4-1 选择CPU芯片
当创建一个新的工程时,µVision会自动为所选择的CPU添加合适的启动代码,如图9-
3。
图4-2 添加启动代码
对于一些设备而言,µVision需要用户手动地输入额外的参数。请仔细阅读这个对话框
右边的信息,因为它可能包含所选设备的额外配置要求。
3. 创建一个新的源文件,将这个源文件加载到工程中。
通过File ->New菜单项可创建一个新的源文件。这时将打开一个空文件编辑窗口,在这
里可以输入源文件代码。当通过File->Save As 对话框以扩展名.C的形式保存了这个源文件
以后,µVision可以用彩色高亮度显示C 语言的语法。例如,保存下面的代码到MAIN.C文
件中。
#include
#include
void main(void)
{
SCON=0x50;//串口方式1,允许接收
TMOD=0x20;//定时器1 定时方式2
TCON=0x40;//设定时器1 开始计数
TH1=0xE8;//11.0592MHz 1200波特率
TL1=0xE8;//
TI=1;
TR1=1;//启动定时器
while(1)
{
printf("hello world!n");//显示hello world
}
}创建源文件以后,就可以将这个文件添加到工程中。µVision提供了几种方法将源文件
添加到工程中。例如, 在Project Workspace ->Files页的文件组上点击鼠标右键,然后在弹
出的菜单中选择Add Files菜单项,这时将打开标准的文件对话框,选择刚才创建的MAIN.C
文件即完成源文件的添加。
图3-3 添加文件
4. 增加和配置ARM设备的启动代码。
一般来说,ARM程序需要与目标硬件的设计配置相匹配的CPU初始化代码。当创建工
程的时候,µVision要求添加与选定的CPU相匹配的启动代码。根据所使用的工具链的不
同,启动代码文件所在的文件夹分别为 ..ARMStartup (针对Keil开发工具
链),..ARMGNUStartup(针对GNU开发工具链) 和 ..ARMADSStartup(针对ADS开发工
具链)。对于不同的微控制器来说,这些文件夹包含不同的 启动代码 。Philips LPC2106的
启动代码文件为...StartupPhilipsStartup.s 。为了和目标硬件相匹配,用户可能会修改这个
启动代码文件,所以工程中的启动代码文件是Startup.s的一个副本。
文件组(file group)可以组织更大的工程。对于CPU的启动代码和其他的系统配置文件,
可以通过Project->Manage ->Components,Environment, Books对话框创建一个单独的文件组。
使用New (Insert)按钮创建名为System Files的文件组。在工程窗口中,可以将Starup.s文件
拖放到这个新建的文件组中。
图4-5 Components, Environment, Books
如图4-5,在工程中添加文件后,µVision的工程空间窗口中将会出现所有的文件。这个
窗口中的文件以在窗口中的排列顺序进行编译和链接。可以通过拖放的方式移动文件的位
置,同时也可以单击目标和组改变它们的名字。在本窗口内单击鼠标 右键,在弹出的菜单
中可以进行如下的操作:
设置工具选项
删除文件或组
将文件添加到组中
打开文件
图4-5 工程空间中的文件
在工程空间中,不同的图标显示了文件和文件夹(文件组)的不同属性。如:
带箭头的文件图标表示编译和链接工程文件。
链接运行时不包含的文件不带箭头。对于一般的文档文件这是很常见的。然而,
在属性对话框中取消Include in Target Build的选择,同样也可以不包含源文件。
只读文件被标志为一个钥匙。在软件版本控制系统中这样的文件是很常见的,
因为SVCS使这样文件的拷贝只读。
,带有特殊选项的文件和文件夹被圆点标记。
5. 设置目标硬件的工具选项。
µVision可以设置目标硬件的选项。通过工具栏按钮或Project - Options for Target菜单项
打开Options for Target对话框,在Target页中设置目标硬件及所选CPU片上组件的参数。
下图是LPC2106的一些参数设置。
图4-6 Target对话框
Xtal,设备的晶振(XTAL)频率。大多数基于ARM的微控制器都使用片上
PLL产生CPU时钟。所以,一般情况下CPU的时钟与XTAL的频率是不同的。仔
细查阅硬件手册以确定合适的XTAL的值。
Use On-Chip ROM/RAM,仅针对Keil ARM工具。选择这两个多选框以
后,将设置Keil LA链接器/装载器。对于GNU和ADS,是通过链接器控制文件实
现的。
External Memory 仅针对Keil ARM工具。指定目标硬件的外部存储区域。
RAM用于存取变量,而ROM用于存储常量和程序代码(一般为EPROM或Flash
存储器)。这些信息用于配置Keil LA链接器/装载器。对于GNU和ADS,是通过
链接器控制文件实现的。
对于GNU和ARM ADS/RealView工具链来说,链接器的配置是通过链接器控制文件实
现的。这个文件指定了ARM目标硬件的存储配置。预配置的链接器控制文件 在文件
夹..ARMGNU或..ARMADS中。 为了与目标硬件相匹配,用户可能会修改链接器控制文
件,所以工程中的那个文件是预配置的连接控制文件的一个副本。这个文件可以通过Project
- Options for Target对话框的Linker页添加到工程中。
图4-7Linker对话框
Enable Garbage Collection,允许未使用输入段的垃圾回收。在不支持这个选项的目
标中,它会被忽略。这个选项和'-r'不一样,也不能在动态链接时使用。
Do not use Standard System Startup Files,链接时不使用标准的系统启动文件。如果
不选 中这个选项时标准的系统库会被正常使用。
Do not use Standard System Libraries,链接时不使用标准的系统库文件。仅使用C
和GCC库。
Text Start,指定输出文件代码段的起始地址。必须是一个单精度的十六进制整数。
为了保持和其他链接器的兼容性,必须忽略这个十六进制值前面的0X。
Data Start,指定输出文件数据段的起始地址。必须是一个单精度的十六进制整数。
为了保持和其他链接器的兼容性,必须忽略这个十六进制值前面的0X。
BSS Start,指定输出文件BSS段的起始地址。必须是一个单精度的十六进制整数。
为了保持和其他链接器的兼容性,必须忽略这个十六进制值前面的0X。
Linker Script File Include Libraries,指定在编译时导入的库。
Include Paths,向路径列表中添加路径,在这些路径中LD将搜索库文件和ld控制
脚本。在任何时候都可以使用这个选项。这些文件夹是按照它们在列表中的顺序搜
索,且是在默认文件之前搜索的。
Misc controls,使用Misc 控制框指定链接器需要的命令,这些命令没有单独的对
话框控制。
Linker control string,这个文本框显示了当前链接器的命令行。
6. 编译工程,创建能烧写到PROM中的十六进制文件。
一般来说,在新建一个应用程序的时候Options ->Target页中的所有的工具和属性都要
配置。单击Build Target工具栏按钮将编译所有的源文件,链接应用程序。当编译有语
法错误的应用程序时,µVision将在Output Window ->Build窗口中显示错误和警告信息。单
击这些信息行,µVision将会定位到相应的源代码处。
图4-8 编译错误提示
如果编译成功的话,源文件编译成功产生应用程序以后就可开始调试了,然后创建可下
载到EPROM或软件仿真器中运行的Intel十六进制文件。当Options for Target ->Output页
中的Create HEX file多选框被选中后,µVision每次编译后都会生成十六进制文件。FLASH
Fill Byte、Start和End文本框中的值被OH166使用工具用来产生十六进制文件。在Run User
Program #1文本框中指定程序时,当编译过程完成后就可以启动PROM编程器了。
图4-9 编译生成十六进制文件选项
现在,可以修改工程中已存在的代码或向工程中添加代码了。Build Target工具按钮仅
编译已修改过或新建的源文件,产生可执行的文件。µVision有一个文件的依赖列表,它记
录了每一个源文件所包含的头文件。甚至工具选项都保存在文件依赖列表中,所以只有在需
要的时候µVision才会重新编译这些源文件。
通过使用不同的工程目标(project target),µVision 可以使单个工程生成几个不同的程序。
开发者可能需要一个目标(target)作为测试,另一个目标作为应用程序的发布版。在同一个工
程文件中,每一个目标都具有各自的工具设置,通过快捷键Alt+F7,即可调出图9-7进行多
目标工具设置。
文件组(file group)可以将工程中相关的的文件组织在一起。这样有利于将一组文件组织
到一个功能块中或区分一个开发团队中的工程师。在以前的一些例程中,已经以文件组的形
式将CPU相关文件同其他源文件隔离开。在µVision中,使用这种技术很容易管理具有几
百个文件的工程。
在Project ->Manage->Components, Enviroment and books->Project Components 对话框中
可以创建工程目标和文件组。在以前的一些例程中,已经使用了这个对话框添加系统配置文
件。下图显示了一个例程的工程结构。
图4-10 设定多个工程目标
在编译工具栏可以快速的改变当前编译的工程目标。
图4-11 快速改变编译目标
在编译工具栏中,按钮可以弹出工程选项,其中包含多个标签页,如图9-10。
各个标签页简要介绍如下:
表一:
Device
Target
Output
Listing
从µVision的设备数据库中选择选择设备。
为应用程序指定硬件环境。
定义工具链的输出文件,在编译完成后运行用户程序。
指定工具链产生的所有列表文件。
C
Asm
Linker
Debug
Utilities
设置C编译器的工具选项,例如代码优化和变量分配。
设置汇编器的工具选项,如宏处理。
设置链接器的相关选项。一般来说,链接器的设置需要配置目标系统的
存储分配。设置链接器定义存储器类型和段的位置。
µVision调试器的设置。
配置Flash编程实用工具。
9.3.2 测试应用程序
µVision调试器可以测试用GNU或ARM ADS/RealView工具链开发的应用程序。µVision
调试器提供了两种操作模式,这两种模式可以在Options for Target ->Debug 对话框中选择。
图4-12 Debug设定
单选框Use Simulator用于选择µVision的软件仿真器作为调试器,它可以
在没有目标硬件的情况下仿真ARM7微控制器的大部分功能。在目标硬件设计好
之前,可以用这个软件仿真器调试嵌入式应用程序。µVision可以仿真许多片上外
设,例如串口,外部I/O和定时器。当为目标(target)从设备数据库中选择一个CPU
时,可仿真的片上外围就已经确定了。


发布评论