MDK-ARM
Microcontroller Development Kit
The MDK-ARM (Microcontroller Development Kit) is
the complete software development environment for
ARM7™, ARM9™, Cortex™-M, and Cortex-R4
processor-based devices.
MDK is specifically designed for microcontroller
applications and combines the ARM C/C++ Compiler
with the Keil RTX real-time operating system and
middleware libraries. All tools are integrated into
µVision which includes project management, editor and
debugger in a single easy-to-use environment.
The fully integrated ARM C/C++ Compiler offers
significant code-size and performance benefits to the
embedded developer, however, MDK can also be used
with the GNU GCC Compiler.
The Keil RTX is a deterministic real-time operating
system with small memory footprint.
MDK-Professional includes a flexible File System and
Middleware for TCP, USB, and CAN peripherals. The
TCP Networking Suite offers multiple internet
protocols and provides various applications such as
HTTP, Telnet, and FTP server. USB Device and USB
Host stacks are provided with standard driver classes.
Numerous application examples help you to get quickly
started with application development.
MDK works with several debug adapters. ULINKpro
enables on-the-fly analysis of running applications and
records every executed Cortex-M instruction. It
delivers time profiling and complete code coverage for
applications optimization and certification.
MDK-Professional integrates all development tools into the µVision IDE/Debugger, and includes a comprehensive middleware collection.
www.keil.com
µVision IDE
Document outlining gives you
a better overview of your source code.
Context menus provide flexible configuration
of all aspects of your project.
Each project may contain multiple
target configurations.
The Project Workspace lists source and
header files helping organize your project
Double-click on messages to locate
the erroneous line in the source code.
The Configuration Wizard simplifies
editing setup files.
The µVision IDE incorporates a Device Database of
supported ARM-Powered microcontrollers. In µVision projects,
required options are set automatically when you select the
device from the Device Database. µVision displays only those
options that are relevant to the selected device.
The Flexible Window Management System enables you to
drag and drop individual windows anywhere on the visual
surface. This interface allows you to make better use of your
screen space and to organise multiple windows efficiently.
2
MDK-ARM Microcontroller Development Kit
The Editor provides an optimized workflow with intuitive
toolbars providing quick access to editor functions. Editor
functions are also available in the debug mode allowing easy
source code navigation and editing.
The integrated Source Browser provides access to all
application symbols, together with name, type, and class
information. It allows you to instantly navigate to the definition
and references of any symbol.
µVision Debugger
The µVision Debugger can be configured as a Target Debugger
or as a Simulator. It provides a single environment in which you
may test, verify, and optimize your application.
The Debugger also simulates many ARM-Powered MCUs
including their instruction set and on-chip peripherals.
Debug Windows
The Debugger provides windows and dialogs to help you
monitor and control your system. These include:
n
Memory Window
- review and modify memory contents.
n
Watch Window
- view and modify program variables and
lists the current function call nesting.
n
Symbol Window
- view debug symbol information of the
application program.
n
Disassembly Window
- synchronized with the Source
Windows making program debugging easier.
n
Register Window
- view and change register contents.
n
Call Stack Window
- view current call nesting including
variable values.
n
Breakpoints Window
- define watchpoints and complex
Execution, Access, and Conditional breakpoints.
n
Browse Window
- search for objects in your code.
ULINK Debug Adapters
The ULINK family of USB Debug Adapters connect your
PC's USB port to your target system (via JTAG or SWD),
allowing you to debug and analyze embedded programs
running on target hardware.
The ULINKpro provides unique streaming trace directly to
your PC, enabling advanced analysis of your applications such
as Execution Profiling and Code Coverage.
System Viewer
The System Viewer windows display peripheral registers that
the processor can read and write to. They display the state,
content, and name of peripheral registers. Content values are
instantly updated by the target hardware as changes occur.
Values can also be changed at run-time by typing a new value
from within the System Viewer window.
Analysis Tools
The advanced analysis tools work with the simulator or with
target hardware via the ULINKpro streaming trace adapter.
The configurable Logic Analyzer provides a graphical display
of signals and variables.You may click on variable changes to
display the instructions that caused that change in the source
code editor window.
The Debugger provides Code Coverage statistics to verify
applications that require certification testing and validation.
Color coding highlights the execution status of instructions
helping you to refine your testing.
The Performance Analyzer displays the execution time
recorded for functions in your application. Bar graphs display
the time spent in a function, and the number of calls to it.
The Execution Profiler records execution statistics for each
CPU instruction, including the execution count and execution
time for each instruction. These can be reviewed in the editor
and disassembler windows.
Features
ULINKpro
ULINK2
Run control debug (ARM & Cortex-M)
Yes
Yes
Memory + Breakpoint (while running)
Yes
Yes
Data Trace (Cortex-M3/M4)
Yes
Yes
Instruction Trace (Cortex-M3/M4)
Yes
-
Performance
JTAG Clock speed
50MHz
10MHz
Memory read/write
1MByte/s
25KByte/s
Data Trace streaming (UART mode)
-
1Mbit/s
Data Trace streaming (Manchester mode)
100Mbit/s
-
ETM Trace streaming
800Mbit/s
-
Logic Analyzer
Yes
Yes
Performance Analyzer
Yes
-
Execution Profiler
Yes
-
Code Coverage
Yes
-
Analysis Tools
Visit: www.keil.com/ULINK
MDK-ARM Microcontroller Development Kit
3
Target Debugging and System Analysis
InstructionTrace
Cortex-M CoreSight
All Cortex-M based devices feature the ARM CoreSight
technology with advanced debug and trace capabilities.
™
MDK-ARM, together with a ULINK adapter, uses these features
to enable you to debug your program.You are able to:
n
Read/write
memory and peripheral registers on-the-fly, while
your program is running at full-speed.
n
Set up
to 8 breakpoints while the processor is running.
n
Control
n
Single
the CPU allowing program start/stop.
Cortex-M devices with ETM provide instruction trace. The Keil
ULINKpro streams instruction trace directly to your PC. This
enables debugging of historical sequences, execution profiling,
and code coverage analysis.
The virtually unlimited stream of trace information enables
MDK-ARM to provide complete Code Coverage of your
program. Code coverage identifies every instruction that has
been executed, ensuring thorough testing of your application.
This is an essential requirement for complete software
verification and certification.
Step source or assembler lines.
Data and Event Trace
All Cortex-M3 and Cortex-M4 devices provide data and event
trace. MDK-ARM provides a number of ways to analyze this
information while your system is running:
n
Trace Window
- displays program flow by capturing
timestamps, PC samples, and Read/Write accesses.
n
Debug Viewer
- displays the Instrumented Trace (ITM)
output in a terminal window.
n
Exceptions
window - displays statistical information about
program exceptions and interrupts.
n
Event
Counters - display real-time values of specific event
counters providing performance indications.
n
Logic Analyzer
- graphically displays variable changes in
captured data trace.
Code Coverage shows the percentage of instructions that have executed.
ULINKpro allows applications to be run for long periods of time
while collecting trace information. This can be used by the
µVision Execution Profiler and Performance Analyzer to
identify program bottlenecks, optimize your application, and to
help locate defects.
Data Trace Windows provide information from the running target for program data,
exceptions, variables, and printf-style outputs
4
MDK-ARM Microcontroller Development Kit
The performance analyzer displays time spent in each part of your program.
RTX Real-Time Operating System
RTX Real-Time Operating System
RTX Real-Time Operating System
Today, microcontroller applications often require simultaneous
execution of multiple tasks in a real-time environment.
While it is possible to implement an embedded program
without using a real-time kernel, the proven Keil RTX allows
you to focus on application development, enabling you to save
time, and produce a more reliable, expandable system.
RTX is a royalty-free, real-time operating system specifically
developed for the ARM and Cortex-M feature-sets. RTX
provides features to manage system resources:
n
Applications
n
Extensive
separated into independent tasks.
time control (scheduling, time delay/intervals).
n
Deterministic
execution times and task scheduling.
n
Inter-task
communication, resource sharing, and memory
allocation features with message pools.
n
Supports
development with error checking, debug and test
facilities.
RTX source code is provided in all MDK-ARM Editions.
Visit www.keil.com/rl-arm/kernel.asp for more information.
Mailbox
Memory
Pool
Mutex
Scheduler
Delay &
Interval
Event &
Semaphore
RTX Function Overview
n
Task
Management Functions allows you to create
and delete tasks. RTX supports up to 254 active tasks,
each with 254 priority levels.
n
Task
Stacks are allocated from a stack memory pool
or can be supplied when a task is created.
n
Fast Memory
Pool Management allows you to
create an unlimited number of fixed size pools.
n
Event
Flag Management allows synchronization
with up to 16 event flags per task.
n
Time
Management and Timer Callback
Functions provide task time delays/intervals.
RTOS Aware Debugging
RTX is fully integrated in the µVision Debugger making it easy
to monitor task status and kernel activity.
The RTOS-aware dialog is available in simulation and also
when running on target hardware. It displays information about
all aspects of the kernel and the running tasks. This enables you
to view statistics about the active tasks, stack loading, and
system resource usage.
RTX Real-Time Operating System Specifications
General Specifications
Defined Tasks (max)
Unlimited
Active Tasks (max)
254
Task Priority Levels
1 - 254
Signals / Events
16 per task
User Timers
Unlimited
Semaphores / Mailboxes / Mutexes
Unlimited
Memory Requirements
CODE Space
RAM Space (Kernel)
RAM Space (Task)