首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

KEILμVision 的使用编程方法

KEIL μ Vision独家原创关注置顶

剑客科技 原创内容

本页面内容根据KEIL公司发布的教程指导文件整理翻译而来,具体正确操作方法应以KEIL公司提供的说明为准。因为KEIL公司发布的文件为英文版本,此页面所介绍的操作使用和编程方法均以其为参考并翻译而来。受限于我们知识水平的局限性,如果出现任何疏漏之处恳请大家指出并谅解,加之时间仓促且英文个别术语翻译可能存在不准确的情况,所以此内容仅用于您的参考使用。如果具体使用KEIL开发工程项目,建议您阅读英文原文或在其官网上查阅官方介绍。

同时,KEIL公司提供免费版以供学习使用,但是免费版限制了编译文件大小。如果您所编写的程序比较大,可以购买完全版使用。重申,本文将KEIL μ Vision4版本为例进行详细介绍,如果您使用的为其他版本使用方法和页面可能会有略微不同,目前KEIL的最新版本为KEIL μ Vision5。 以下将进入正文介绍...

Keil公司开发的ARM开发工具MDK(Microcontroller Development Kit),是用来开发基于ARM核的系列微控制器的嵌入式应用程序。它适合不同层次的开发者使用(当然用他开发51系列微控制器也是可以的,支持C51、汇编、C++等编写方式)。MDK包含了工业标准的Keil C编译器、宏汇编器、调试器、实时内核等组件,支持所有基于ARM的设备,能帮助工程师按照计划完成项目。

ARM MDK集成了很多有用的工具 包括但不限于以上几种

一般而言在安装uvision时,MDK工具会自动安装至本地计算机中。我们这里以默认安装C盘为例,介绍一下相应的MDK工具所在的地址。如果大家在安装时修改了地址,就要以实际安装地址为例去寻找哦~

以上是MDK安装的目录结构大家可以去看看

ARM MDK工具集的选择方法

根据Keil公司给出uvision3的开发流程,我们以使用uvision4为例作为嵌入式开发工具。他的开发流程和大多数软件开发工具基本一样,都可以分为以下几步,大家可以了解一下。专业规范的开发流程对软件系统的开发有着举足轻重的作用:

1) 新建一个工程,从库中选择目标芯片,配置工程编译器环境

2) 用C或汇编编写源文件

3) 编译目标应用程序

4) 修改源程序中的错误

5) 测试链接应用程序

这是keil公司给出的官方开发流程 大家可以了解一下

uvision的主要功能是编译和调试,而且keil软件仿真器是唯一能完全仿真Atmel(爱特梅尔),Philips(飞利浦)和Samsung(三星)ARM芯片片上外设的调试器,这一点是非常强大的。而且可以使用高级仿真接口,也就是AGSI提高仿真的性能,通过外设驱动可以很精确的仿真复杂的系统,比如STC系列的一些单片机uvision就支持外部仿真。

OK, 以上是对uvision的基本引述和开发流程简介。嗯,文章才刚刚开始~ 以下将分“编译-创建”和“调试-测试”两个主题详细介绍uvision(KEIL μ Vision的简称)的官方使用说明和方法。提示:非战斗人员,哦不,非开发人员请立即撤离,立即撤离,这不是演习,在重复一遍这不是演习!

Uvision 的 编译-创建

首先,先介绍一下如何在uvision中创建一个新的工程文件。其类型为:礦ision4 Project (.uvproj) 文件。(肯定有人在问“礦”这个字读什么,嗯,“矿”繁体字) 好,下面给出keil公司官方创建一个新工程文件的过程。

运行μVision,选择工具集。

创建一个工程文件,从设备数据库中选择一个CPU芯片。

创建一个新的源文件,将这个源文件加载到工程中。

增加和配置ARM设备的启动代码。

设置目标硬件的工具选项。

编译工程,创建能烧写到ROM中的十六进制文件。

创建工程文件

单击Project ->New μVision Project 菜单项。μVision 将打开一个标准对话框,输入希望新建工程的名字即可创建一个新的工程(建议对每个新建工程使用独立的文件夹) 例如,先在这里建立一个新的文件夹,然后选择这个文件夹作为新建工程的目录,输入新建工程的名字Project1,μVision将会创建一个以Project1.uvproj为名字的新工程文件,它包含了一个缺省的目标(target)和文件组名。这些内容在Project Workspace->Files中可以看到。

选择工程设备

创建完成工程文件后,会弹出以下页面要求为这个工程选择一款CPU。选择设备对话框显示了μVision的设备数据库,只需要选择用户所需的微控制器即可。例如,选择 Philips LPC2106微控制器,这个选择设置了LPC2106设备的必要工具选项、简化了工具的配置。

因为keil公司是国外公司,其内置CPU中没有国内微处理器生产商的型号,比如国内比较基础和普遍的STC系列这里面就没有。解决办法有两种,一是选择内置CPU中默认的8051系列内核,即Atmel相关型号如89C51 89C52等,但是不推荐,因为局限性比较大。二是添加STC公司的型号头文件到KEIL目录下。

STC公司的型号头文件的方式

添加方式为首先下载STC公司的“STC-ISP”软件,这个为免费的。大家可以在其官网下载最新版本或者打开我们提供的公用云盘 在目录: 剑客电子科技>单片机开发辅助工具 中的名为:STC-ISP V6.86下载软件 的EXE文件下载到本地计算机中。打开后在上方导航栏的“KEIL仿真设置”里根据提示进行添加即可。

添加完成后在打开就会弹出此对话框以供选择CPU类型

如果开发STC系列选择STC MCU即可,不然就使用默认的

完成后选择开发处理器的型号后,可能会弹出询问是否需要拷贝“STARTUP.A51”到文件中的对话框。如果大家选择C语言系列开发就需要添加,按“是”添加,如果采用汇编语言开发就不需要添加,按“否”即可。当我们创建一个新的工程时,μVision会自动为所选择的CPU添加合适的启动代码。对于一些设备而言,μVision还需要大家手动地输入额外的参数。所以请留意所选型号对话框右边的显示信息,因为它可能包含所选设备的额外配置要求。当我们从设备数据库中选择了一个CPU后,就可以在Project Workspace ->Books页中打开这个设备的用户手册。这些用户数据手册是Keil 开发工具CD-ROM的一部分。

创建新的源文件

通过File ->New...菜单项可创建一个新的源文件(或快捷键ctrl+n键)。这时将打开一个名称为text1的空文件编辑窗口,在这里可以输入源文件代码。当通过File->Save As 对话框(或快捷键ctrl+s键)以扩展名.C的形式保存了这个源文件以后(如把文件保存为main且用C51语言开发,输入时要输入main.c保存,后缀名很重要。如果用汇编开发后缀名就是.s即asm文件,如果用C++开发后缀名就是.ccp即C++文件),μVision可以用彩色高亮度显示C 语言的语法。例如,保存下面的代码到MAIN.C文件中。

以下代码演示部分请划阅翻看

#include /* 如果是51内核头文件改为reg51.h*/

void wait (void) {

;

}

int main (void) {

unsigned int i;

unsigned int j;

IODIR = 0xFF;

while (1) {

for (j = 0x01; j < 0x80; j

IOSET = j;

for (i = 0; i < 10000; i++) {

wait ();

}

IOCLR = j;

}

for (j = 0x80; j > 0x01; j >>=1) {

IOSET = j;

for (i = 0; i < 10000; i++) {

wait ();

}

IOCLR = j;

}

}

}

绿色文字为注释部分 可直接复制测试

创建源文件以后,就可以将这个文件添加到工程中。μVision提供了几种方法将源文件添加到工程中。例如, 在Project Workspace ->Files页的文件组上点击鼠标右键,然后在弹出的菜单中选择Add Files菜单项,这时将打开标准的文件对话框,选择刚才创建的MAIN.C文件即完成源文件的添加。

一般来说,ARM程序需要与目标硬件的设计配置相匹配的CPU初始化代码。当创建工程的时候,μVision要求添加与选定的CPU相匹配的启动代码。根据所使用的工具链的不同,启动代码文件所在的文件夹分别为 ..\ARM\Startup (针对Keil开发工工具链), ..\ARM\GNU\Startup (针对GNU开发工具链) 和 ..\ARM\ADS\Startup(针对ADS开发工具链)。对于不同的微控制器来说,这些文件夹包含不同的 启动代码 。Philips LPC2106的启动代码文件为...\Startup\Philips\Startup.s 。为了和目标硬件相匹配,用户可能会修改这个启动代码文件,所以工程中的启动代码文件是Startup.s的一个副本。

uvision中文件组(file group)可以组织更大的工程。对于CPU的启动代码和其他的系统配置文件,可以通过Project ->manage>Components,Environment, Books对话框创建一个单独的文件组。使用New (Insert)按钮创建名为System Files的文件组。在工程窗口中,可以将Starup.s文件拖放到这个新建的文件组中。

Project Workspace ->Files页列出了所有的工程文件。在工程工作区中双击这些文件名可以打开它们,此时可以对这些文件进行编辑。μVision有一个特点,就是可以在编辑器中以图形界面的形式编辑启动代码。

μVision可以设置目标硬件的选项。通过工具栏按钮或Project - Options for Target菜单项打开Options for Target对话框,在Target页中设置目标硬件及所选CPU片上组件的参数。下图是LPC2106的一些参数设置。

关于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目标硬件的存储配置。预配置的链接器控制文件 在文件夹..\ARM\GNU或..\ARM\ADS中。为了与目标硬件相匹配,用户可能会修改链接器控制文件,所以工程中的那个文件是预配置的连接控制文件的一个副本。这个文件可以通过Project - Options for Target对话框的Linker页添加到工程中。

对options for target中功能的描述

一般来说,在新建一个应用程序的时候Options ->Target页中的所有的工具和属性都要配置。单击Build Target工具栏按钮将编译所有的源文件,链接应用程序。当编译有语法错误的应用程序时,μVision将在Output Window ->Build窗口中显示错误和警告信息。单击这些信息行,μVision将会定位到相应的源代码处。

源文件编译成功产生应用程序以后就可开始调试了,然后创建可下载到EPROM或软件仿真器中运行的Intel十六进制文件。当Options for Target ->Output页中的Create HEX file多选框被选中后,μVision每次编译后都会生成十六进制文件。FLASH Fill Byte、Start和End文本框中的值被OH166使用工具用来产生十六进制文件。在Run User Program #1文本框中指定程序时,当编译过程完成后就可以启动PROM编程器了。

现在,可以修改工程中已存在的代码或向工程中添加代码了。Build Target工具按钮仅编译已修改过或新建的源文件,产生可执行的文件。μVision有一个文件的依赖列表,它记录了每一个源文件所包含的头文件。甚至工具选项都保存在文件依赖列表中,所以只有在需要的时候μVision才会重新编译这些源文件。

通过使用不同的工程目标(project target),μVision 可以使单个工程生成几个不同的程序。大家可能需要一个目标(target)作为测试,另一个目标作为应用程序的发布版。在同一个工程文件中,每一个目标都具有各自的工具设置。

文件组(file group)可以将工程中相关的的文件组织在一起。这样有利于将一组文件组织到一个功能块中或区分一个开发团队中的工程师。在以前的一些例程中,已经以文件组的形式将CPU相关文件同其他源文件隔离开。在μVision中,使用这种技术很容易管理具有几百个文件的工程。

在Project ->Targets, Groups, Files 对话框中可以创建工程目标和文件组。在以前的一些例程中,已经使用了这个对话框添加系统配置文件。下图显示了一个例程的工程结构。

Project Workspace窗口显示了所有的组和相关文件。这个窗口中的文件以在窗口中的排列顺序进行编译和链接。可以通过拖放的方式移动文件的位置,同时也可以单击目标和组改变它们的名字。在本窗口内单击鼠标 右键,在弹出的菜单中可以进行如下的操作:

设置工具选项

删除文件或组

将文件添加到组中

打开文件

在编译工具栏可以快速的改变当前编译的工程目标

带箭头的文件图标表示编译和链接工程文件。

链接运行时不包含的文件不带箭头。对于一般的文档文件这是很常见的。然而,在属性对话框中取消Include in Target Build的选择,同样也可以不包含源文件。

只读文件被标志为一个钥匙。在软件版本控制系统中这样的文件是很常见的,因为SVCS使这样文件的拷贝只读。

这是工程选项页基本选项的概述

Uvision 的 调试-测试

我们将开始介绍μVision的调试模式,介绍如何使用用户接口测试一个简单的例程。同时讨论了程序调试的仿真模式及不同的可用选项设置。老铁,非常感谢你能看到这里,很不容易啊~

CPU仿真

启动调试模式

执行应用程序

设置调试选项

调试窗口和对话框

μVision调试器可以测试用GNU或ARM ADS/RealView工具链开发的应用程序。μVision调试器提供了两种操作模式,这两种模式可以在Options for Target ->Debug 对话框中选择。

单选框Use Simulator用于选择μVision的软件仿真器作为调试器,它可以在没有目标硬件的情况下仿真ARM7微控制器的大部分功能。在目标硬件设计好之前,可以用这个软件仿真器调试嵌入式应用程序。μVision可以仿真许多片上外设,例如串口,外部I/O和定时器。当为目标(target)从设备数据库中选择一个CPU时,可仿真的片上外围就已经确定了。

使用高级GDI驱动器,例如Keil ULINK2 ARM调试器 提供了一个与目标硬件相连接的接口。使用高级GDI接口可以直接将μVision调试器与硬件仿真器、嵌入式ICE(片上调试系统)相连,例如带USB-JTAG接口的Keil ULINK2仿真器。

μVision调试器可以仿真高达4GB的存储空间,这些存储空间可以被映射为读、写或可执行等访问权限。μVision软件仿真器可以捕获和报告非法的存储访问。除了存储映射以外,软件仿真器同时可以仿真各种基于ARM微控制器的片上外围设备。在创建工程时,从设备数据库中选择的CPU就决定了可以用软件仿真器仿真的片上外围设备。关于从设备数据库中选择设备的信息请参考运行μVision及创建工程文件 。可以调试菜单选择和显示片上外围设备,同时通过相应的对话框改变这些外围设备的特征。

可以通过Debug ->Start/Stop Debug Session菜单项启动μVision的调试模式。根据Options for Target -> Debug页配置的不同,μVision将加载应用程序、运行启动代码。关于μVision调试器配置的详细信息请参考设置调试选项。μVision可以保存编辑窗口的布局以及回复最后调试时的窗口布局。 如果程序停止执行,μVision将打开一个显示源代码文本的编辑窗口或在反汇编窗口中显示相应的CPU指令。下一个可执行的语句被标记为黄色箭头。

在调试的时,大多数编辑器的功能都是可用的。例如,可以使用查找命令或纠正程序错误。应用程序的源代码文本在同一窗口中显示。μVision的调试模式和编辑模式有如下的不同:

调试菜单和调试命令是可用的。调试窗口将在以后讨论。

工程结构和工具参数是不能被修改的。所有的编译命令不可用。

μVision还有以下几种方法开始执行应用程序。

使用调试菜单和调试命令。

在编辑器或反汇编窗口上单击鼠标右键,在弹出的菜单中选择Run till Cursor line菜单项。

在Output Window – Command页中使用 Go, Ostep, Pstep和Tstep命令。

Options for Target - Debug对话框用于配置μVision调试器~

关于对调试对话框的选项介绍:

Use Simulator :选择μVision的软件仿真器作为调试工具。

Use ULINK2 ARM7 Debugger :选择高级的GDI驱动器和调试硬件相连。Keil ULINK2 ARM7调试器可以用带USB-JTAG接口的KeilULINK2仿真器和目标板相连。同时也有现存的第三方μVision驱动器。

Settings :打开已选的高级GDI驱动器的配置对话框。

Other dialog options :对软件仿真器和高级GDI 会话可用。

Load Application at Startup :选中该选项以后,在启动μVision调试器时自动加载目标应用程序

Go till main () :当启动调试器时开始执行程序,直到main()函数处停止。

Initialization File :调试程序时作为命令行输入的指定文件。

Breakpoints :从前一个调试会话中恢复断点设置。

Toolbox :从前一个调试会话中恢复工具框按钮。

Watchpoints & PA :从前一个调试会话中恢复观察点和性能分析仪的设置。

Memory Display :从前一个调试会话中恢复内存显示设置。

CPU DLL Driver DLL Parameter :配置内部μVision调试DLL。这些设置来源于设备数据库。用户能修改DLL或DLL的参数。

调试窗口和对话框在调试阶段,μVision提供了几个用于帮助调试的窗口和对话框。它们可以通过工具按钮和μVision菜单打开。

Debug Breakpoint... (Ctrl+B):设置、浏览和修改断点。

View Code Coverage Window:已执行代码的统计。

View Project Workspace Regs Tab:显示或修改CPU寄存器的内容。

View Disassembly Window: 混合源代码的汇编指令和运行轨迹记录。

View Logic Analyzer Window: 变量或I/O值改变的图形化显示。

View Memory Window: 查看和修改内存的值。

Debug Memory Map...: 指定数据和程序代码的存储区域。

View Output Window Debug Tab: 输入调试命令,表达式 或调用 调试函数。

View Performance Analyzer Window:程序执行的时间统计。

View Serial Window 1 - 3:串行输入/输出的终端窗口。

View Symbol Window: 列出程序的符号信息。

View Toolbox: 用户可配置的按钮,用于快速执行命令。

View Watch & Call Stack Window:显示和修改变量值、列出函数间调用的情况。

如若本文对您的工作或者学习有帮助,我们不胜荣幸! 本文并不具有任何权威性,谨根据其官网给出的文件进行适当的翻译。受限于我们知识水平的局限可能部分专业术语翻译的不恰当或错误。所以本文仅供参考。如果您认为具有一定的价值,可以收藏或者转发给您身边的同行,但是转载请务必联系我们授权,非常感谢!

剑客电子技术

ID:JEIKU-DZJS

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180108G105WT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券