Getting Started
Creating Applications with µVision®4
For 8-bit, 16-bit, and 32-bit Microcontrollers
www.keil.com
2
Preface
Information in this document is subject to change without notice and does not
represent a commitment on the part of the manufacturer. The software described
in this document is furnished under license agreement or nondisclosure
agreement and may be used or copied only in accordance with the terms of the
agreement. It is against the law to copy the software on any medium except as
specifically allowed in the license or nondisclosure agreement. The purchaser
may make one copy of the software for backup purposes. No part of this manual
may be reproduced or transmitted in any form or by any means, electronic or
mechanical, including photocopying, recording, or information storage and
retrieval systems, for any purpose other than for the purchaser’s personal use,
without written permission.
Copyright © 1997-2009 Keil, Tools by ARM, and ARM Ltd.
All rights reserved.
Keil Software and Design®, the Keil Software Logo, µVision®, RealView®,
C51™, C166™, MDK™, RL-ARM™, ULINK®, Device Database®, and
ARTX™ are trademarks or registered trademarks of Keil, Tools by ARM, and
ARM Ltd.
Microsoft® and Windows™ are trademarks or registered trademarks of Microsoft
Corporation.
PC® is a registered trademark of International Business Machines Corporation.
NOTE
This manual assumes that you are familiar with Microsoft Windows and the
hardware and instruction set of the ARM7, ARM9, Cortex-Mx, C166, XE166,
XC2000, or 8051 microcontroller.
Every effort was made to ensure accuracy in this manual and to give appropriate
credit to persons, companies, and trademarks referenced herein.
Getting Started: Creating Applications with µVision
3
Preface
This manual is an introduction to the Keil development tools designed for
Cortex-Mx, ARM7, ARM9, C166, XE166, XC2000, and 8051 microcontrollers.
It introduces the µVision Integrated Development Environment, Simulator, and
Debugger and presents a step-by-step guided tour of the numerous features and
capabilities the Keil embedded development tools offer.
Who should Read this Book
This book is useful for students, beginners, advanced and experienced developers
alike.
Developers are considered experienced or advanced if they have used µVision
extensively in the past and knowledge exists of how the µVision IDE works and
interacts with the debugger, simulator, and target hardware. Preferably, these
developers already have a deep understanding of microcontrollers. We
encourage this group of engineers to get familiar with the enhancements
introduced and to explore the latest features in µVision.
Developers are considered students or beginners if they have no working
experience with µVision. We encourage this group of developers to start by
reading the chapters related to the µVision IDE and to work through the
examples to get familiar with the interface and configuration options described.
They should make use of the ample possibilities the simulator offers. Later on,
they should continue with the chapters describing the RTOS and microcontroller
architectures.
However, it is assumed that you have a basic knowledge of how to use
microcontrollers and that you are familiar with a few instructions or with the
instruction set of your preferred microcontroller.
The chapters of this book can be studied individually, since they do not strictly
depend on each other.
4
Preface
Chapter Overview
“Chapter 1. Introduction”, provides an overview of product installation and
licensing and shows how to get support for the Keil development tools.
“Chapter 2. Microcontroller Architectures”, discusses various microcontroller
architectures supported by the Keil development tools and assists you in
choosing the microcontroller best suited for your application.
“Chapter 3. Development Tools”, discusses the major features of the µVision
IDE and Debugger, Assembler, Compiler, Linker, and other development tools.
“Chapter 4. RTX RTOS Kernel”, discusses the benefits of using a Real-Time
Operating System (RTOS) and introduces the features available in Keil RTX
Kernels.
“Chapter 5. Using µVision”, describes specific features of the µVision user
interface and how to interact with them.
“Chapter 6. Creating Embedded Programs”, describes how to create projects,
edit source files, compile, fix syntax errors, and generate executable code.
“Chapter 7. Debugging”, describes how to use the µVision Simulator and Target
Debugger to test and validate your embedded programs.
“Chapter 8. Using Target Hardware”, describes how to configure and use
third-party Flash programming utilities and target drivers.
“Chapter 9. Example Programs”, describes four example programs and shows
the relevant features of µVision by means of these examples.
Getting Started: Creating Applications with µVision
5
Document Conventions
Examples
README.TXT1
Courier
Variables
DIR
LX51.EXE
ARMCC.EXE
Description
Bold capital text is used to highlight the names of executable programs,
data files, source files, environment variables, and commands that you
can enter at the command prompt. This text usually represents
commands that you must type in literally. For example:
Text in this typeface is used to represent information that is displayed on
the screen or is printed out on the printer
This typeface is also used within the text when discussing or describing
command line items.
Text in italics represents required information that you must provide. For
example, projectfile in a syntax string means that you must supply the
actual project file name
Occasionally, italics are also used to emphasize words in the text.
Elements that repeat… Ellipses (…) are used to indicate an item that may be repeated
Omitted code
.
.
.
«Optional Items»
{ opt1 | opt2 }
Keys
Vertical ellipses are used in source code listings to indicate that a
fragment of the program has been omitted. For example:
void main (void) {
.
.
.
while (1);
Double brackets indicate optional items in command lines and input
fields. For example:
C51 TEST.C PRINT «filename»
Text contained within braces, separated by a vertical bar represents a
selection of items. The braces enclose all of the choices and the vertical
bars separate the choices. Exactly one item in the list must be selected.
Text in this sans serif typeface represents actual keys on the keyboard.
For example, “Press Enter to continue
1It is not required to enter commands using all capital letters.
6
Contents
Contents
Preface ................................................................................................................... 3
Document Conventions ........................................................................................ 5
Contents ................................................................................................................ 6
Chapter 1. Introduction...................................................................................... 9
Last-Minute Changes ....................................................................................... 11
Licensing .......................................................................................................... 11
Installation ....................................................................................................... 11
Requesting Assistance ..................................................................................... 13
Chapter 2. Microcontroller Architectures ...................................................... 14
Selecting an Architecture ................................................................................. 15
Classic and Extended 8051 Devices ................................................................ 17
Infineon C166, XE166, XC2000 ..................................................................... 20
ARM7 and ARM9 based Microcontrollers ...................................................... 21
Cortex-Mx based Microcontrollers .................................................................. 23
Code Comparison ............................................................................................ 26
Generating Optimum Code .............................................................................. 28
Chapter 3. Development Tools ......................................................................... 33
Software Development Cycle .......................................................................... 33
µVision IDE ..................................................................................................... 34
µVision Device Database ................................................................................ 35
µVision Debugger ............................................................................................ 35
Assembler ........................................................................................................ 37
C/C++ Compiler .............................................................................................. 38
Object-HEX Converter .................................................................................... 38
Linker/Locator ................................................................................................. 39
Library Manager .............................................................................................. 39
Chapter 4. RTX RTOS Kernel ........................................................................ 40
Software Concepts ........................................................................................... 40
RTX Introduction ............................................................................................. 43
Chapter 5. Using µVision ................................................................................. 55
Menus .............................................................................................................. 59
Toolbars and Toolbar Icons ............................................................................. 63
Project Windows .............................................................................................. 69
Getting Started: Creating Applications with µVision
7
Editor Windows ............................................................................................... 71
Output Windows .............................................................................................. 73
Other Windows and Dialogs ............................................................................ 74
On-line Help .................................................................................................... 74
Chapter 6. Creating Embedded Programs ..................................................... 75
Creating a Project File ..................................................................................... 75
Using the Project Windows ............................................................................. 77
Creating Source Files ....................................................................................... 78
Adding Source Files to the Project .................................................................. 79
Using Targets, Groups, and Files ..................................................................... 79
Setting Target Options ..................................................................................... 81
Setting Group and File Options ....................................................................... 82
Configuring the Startup Code .......................................................................... 83
Building the Project ......................................................................................... 84
Creating a HEX File ........................................................................................ 85
Working with Multiple Projects ...................................................................... 86
Chapter 7. Debugging ....................................................................................... 89
Simulation ........................................................................................................ 91
Starting a Debug Session ................................................................................. 91
Debug Mode .................................................................................................... 93
Using the Command Window .......................................................................... 94
Using the Disassembly Window ...................................................................... 94
Executing Code ................................................................................................ 95
Examining and Modifying Memory ................................................................ 96
Breakpoints and Bookmarks ............................................................................ 98
Watchpoints and Watch Window .................................................................. 100
Serial I/O and UARTs.................................................................................... 102
Execution Profiler .......................................................................................... 103
Code Coverage ............................................................................................... 104
Performance Analyzer ................................................................................... 105
Logic Analyzer .............................................................................................. 106
System Viewer ............................................................................................... 107
Symbols Window ........................................................................................... 108
Browse Window ............................................................................................ 109
Toolbox .......................................................................................................... 110
Instruction Trace Window ............................................................................. 111
Defining Debug Restore Views ..................................................................... 111