Development Tools for ARM-Powered Devices RealView Microcontroller Development Kit ULINK2 USB/JTAG Adapter Evaluation Boards Name of presenter
Session Agenda Introduction and Overview RealView Microcontroller Development Kit µVision Integrated Development Environment Advantages of Complete Device Simulation RealView Compilation Tools Hardware Components Evaluation Boards ULINK2 USB-JTAG Adapter Real-Time Agent RTX Real-Time Kernel RTOS Concepts RTX Features RTX Configuration
Keil an ARM Company Leading supplier of MCU development tools ANSI C/C++ compilers, Debuggers Device simulation Middleware components Extensive Device Database® >1,200 8/16/32 bit MCU’s Established support Web support portal. User group structure Global distribution network Huge installed base 100K+ users world wide
Keil and RealView RealView Compiler Keil µVision Tools supporting ARM MCU devices use the ARM RealView Compiler, µVision is common to all Keil based tools. RealView Compiler Replaces Keil CARM compiler for ARM processor-based MCU’s C51 and C166 will continue to be developed Industry leading compiler – performance and code size ARM tools branded as ‘RealView’ Keil µVision Common to all Keil based tools Cx51, C166 and ARM More than 100,000 users Powerful, easy to use, standard device focused
Tools for ARM-Powered Devices Third Party Utilities RealView Microcontroller Development Kit Examples and Templates µVision Device Database & IDE RTX RTOS Kernel RealView C/C++ Compiler Debugger & Analysis Tools Complete Device Simulation RealView RTX Source Code TCP/IP Suite Flash File System USB Device Interface CAN Interface Examples and Templates Real-Time Library Target Debug ULINK2 USB-JTAG Adapter with Real-Time Agent Evaluation Boards ARM7, ARM9 and Cortex-M3 based MCU devices
Microcontroller Development Kit Complete software development environment for ARM processor-based microcontrollers. Easy to learn and easy to use! Industry leading technology ARM RealView Compiler Keil µVision IDE / Debugger Complete device support ARM7, ARM9, Cortex-M3 MCU’s Includes Start-up code & Flash algorithms Complete device simulation RTX Real-Time Kernel Efficient RTOS Kernel for small systems RealView Microcontroller Development Kit Examples and Templates µVision Device Database RTX RTOS Kernel RealView C/C++ Compiler µVision Debugger & Analysis Tools Complete Device Simulation
RealView Real-Time Library Extensive library of common ready-to-use middleware components, speed software development. RealView RTX Source Code TCP/IP Suite Flash File System USB Device Interface CAN Interface Examples and Templates Real-Time Library Meets Embedded Developers needs Solves common embedded challenges Real-Time Systems Embedded communication & networking Designed for use with MCU Devices Extensive Range of Examples Easy to begin working. Can be used as building blocks. Royalty Free Includes RTX source code. License – single user, multi project
Range of evaluation boards and debug hardware. Hardware Components Range of evaluation boards and debug hardware. ULINK2 USB – JTAG Adapter Debug and Flash programming JTAG and SWD support Evaluation Boards ARM7, ARM9 & Cortex-M3 NXP, ST & Luminary
Challenges for Embedded Developers How do all of these features really help me to develop my application quickly and accurately?
Embedded Design Questions ARM-based devices and MCU’s make complex applications possible, good tool support enables applications to be developed efficiently. Device selection ARM7, ARM9 or Cortex-M3? Peripheral mix and memory? Application development Easy device configuration? Ensuring the application fits into hardware resources (speed, memory)? Compilation tools, Middleware and libraries? Verification and debug Most efficient way to verify software? Running hardware system debug?
Today’s Microcontroller Selection Wide range of MCU Cores 8/16/32 Bit On-chip Memory Interrupt System 512KB On-chip Flash JTAG Debug and Embedded Trace Macrocell 16-bit standard Timers including PWM 32KB SRAM, 2KB Battery back-up RAM 72MHz ARM7TDMI-S Peripherals I/O Pins, Timers, PWM A/D and D/A Converters UART, SPI, I2C Complex communication peripherals (CAN, USB, Ethernet) Power management, RTC, reset and watchdog, internal oscillator and PLL 10/100 Ethernet MAC with DMA & 16KB Static RAM 2 CAN Channels USB 2.0 Interface with 8KB Static RAM 2 Programmable DMA Channels 10-bit A/D converter (eight channels) SD/MMC Memory Card I/F 10-bit D/A converter Four 16550-style UART’s Three I2C Interfaces Two channels for SPI or SSP Customers expect support for specific Microcontrollers. 104 GPIO Pins Block Diagram of LPC2378
RealView MDK supports MCU’s Instantly begin developing software, without the need for hardware or in-depth knowledge of target MCU. Out of the box support >180 ARM MCU’s Start-up code and configuration wizards Flash Algorithms and debug information Examples and Templates Complete device simulation Not only a processor simulator! Includes On-Chip peripheral’s A/D, D/A, EBI, Timers UART, CAN, I2C, Interrupts .. External signals and I/O
Application Development µVision, device configuration and Compilation tools
µVision IDE Leading microcontroller Integrated Development Environment. µVision is the industry leading Integrated Development Environment (IDE) for microcontroller and standard devices. Common to ARM, C166 and 8051 platforms Includes target device configuration and Device Database High speed simulation Instruction Set On-chip peripherals Source code editor Project debugging Flash programming
Device Database On-line uVision Enables quick selection of suitable device. Available on-line and integrated in µVision. On-line Includes Parametric Search www.keil.com/dd uVision Includes main parameters for device Enables easy project creation Fast device configuration
Configuration wizards enable effortless device set-up. Device Configuration Configuration wizards enable effortless device set-up. Available for all devices Included in Device Database User configurable (text or wizard) Configuration Wizard Main parameters for device Drop-down selection or user entry Enables stable device start-up
RealView Compilation Tools Highest performance compiler for ARM-Powered devices
RealView Compilation Tools Best in class compilation tools, enabling applications to run faster while reducing system cost. The RealView Compilation tools contain: Highly-optimizing ISO C/C++ compiler Supports ARM, Thumb and Thumb2 Instruction sets including FPU Full C and C++ run-time library support The RealView Compiler Advantage Smaller, Faster Code RealView Compiler 3.1 Micro Library for small Embedded Systems Source Browser Integration for µVision
MicroLib – Optimized C Libraries MicroLib significantly reduces library size in embedded applications Superset of standard RealView C Library Developed for embedded and memory constrained applications Optimized for embedded applications Minimal overhead for un-used OS functionality Un-used functions removed from memory footprint Faster system bring-up Most functions initialized at point of use Up to 92% Reduction in Library Code size ‘empty main’ Even more for ‘Hello World’ using Print f
MicroLib – Optimised for Embedded RealView MDK libraries reduce system code size by 50% to 90% Library Totals RO Totals 51% 61% Processor Object Standard MicroLib % saving ARM7TDMI ARM Library Total 21,352 8,980 61% RO Total 25,608 12,816 51% Thumb 17,156 6,244 57% 20,129 9,348 50% Cortex-M3 Thumb-2 15,018 5,796 63% 18,616 8,976 54% Based on Dhrystone 2.1 Benchmark
Source Browser F12 Source Browser View Displays variable and function definitions and where they are used throughout your application. F12 Displays variable definition Source Browser View Displays all locations of variables or functions
Verification and Debug Complete Device Simulation and Analysis Tools
Complete Device Simulation The µVision Advantage
µVision Device Simulation All components of the Target Device are Simulated. Code can be run on entire device. Complete simulation of target. Fast Instruction Set Simulation (ISS) On-chip peripheral’s ADC, DAC, EBI, Timers UART, CAN, I2C, Interrupts …. Includes external signals and I/O Dialog Boxes Complete access to peripherals Read and write Device Simulation D/A A/D SRAM Flash / EEPROM UART SPI Ethernet Interrupts GPIO CAN USB Timers CPU Extending Simulation AGSI Interface Board or System Interfaces Device Simulation External Peripherals www.keil.com/uVision/db_sim.asp
The µVision Advantage Advantages of Complete Device Simulation Complete Device Simulation allows software testing with no hardware, providing quick test cycles and improving product quality. Advantages of Complete Device Simulation Test before hardware available Hardware cannot be damaged No extra components required Real advantages v hardware Embedded Trace has limitations Many things are only possible in simulation Lower cost Easy with RealView MDK All included in Device Database Removes configuration hassles
ETM Trace is not available in all systems. ETM Style Trace ETM Trace is not available in all systems. ETM is relatively new to MCU world Increasing with ARM9 MCU families Very rare in ARM7 MCU devices ETM not always available Requires additional pins ETM pins shared with other I/O E.g. ADC or GPIO Additional Hardware Costly Complete Device Simulation offers all the advantages of ETM without the disadvantages
CPU and Peripheral Control Simulation offers true system synchronization with all components that allows total system halt, detailed analysis, and full run control. Halt Stops Peripherals Whole system stops Breakpoint and Single-Stepping External signals all stop Complete System Analysis Test can be reproduced Executes from a ‘known’ state Full Power-Down Control Debug in all MCU states System is always accessible Timing analysis of power-down activity No Adaptation Hassle Hardware can be destroyed Small systems are physically hard to connect
Analysis Tools The µVision Advantage
µVision Code Coverage Execution Statistics Simulation gives extra features not available with JTAG Debuggers. For example: Code Coverage at Source and Assembly Level. Execution Statistics Always Active for Complete Project Instruction Status Color Coded Multi-Session Coverage With Save / Restore
µVision Execution Profiling Simulation provides exact CPU Timing and allows detailed program execution analysis with different parameters. Detailed Timing Statistics Active for Complete Project Execution Time Number of Executions Flexible Views Source Disassembler Compete Overview
µVision Logic Analyzer Allows analog and digital signals to be monitored graphically. Easy, fast analysis of signal timing with code trace. Timing Analysis Analog & Digital I/O Pins and Signals Internal Variables Exact Timing Using Cursor Line Tool-Tip Delta Information Direct Code Analysis From Analyzer Window
Use Cases for Simulation Generic: Detect Illegal Memory Access ULINK2: Analysis of JTAG I/O Pins
Detect Illegal Memory Accesses Requirement: Detect illegal accesses that fail in Hardware MAP command allows to define access rights: read, write, execute On illegal memory access you may display messages or stop simulation “Better verification with no extra effort ” http://www.keil.com/download/docs/323.asp
Use Case: Detect I/O Glitches Requirement: Analyze timing and glitches of I/O Pins Using the Logic Analyzer the JTAG signal pin timing is verified Glitches of I/O pins can be analyzed Synchronisation with the Source Code simplifies corrections http://www.keil.com/download/docs/322.asp
Including Real-Time Agent Target Hardware Debug Including Real-Time Agent
ULINK2 – USB / JTAG Adapter Easy to use USB run control adapter, supporting JTAG debug and Flash programming. New Features Cortex-M3 Serial Wire Debug and Trace Plug and Play USB Installation On-the-fly debugging with Real-Time Agent Program Debugging Single Stepping & Real-Time Execution Flash and Software Breakpoints Memory Access Breakpoints Flash Programming Download, Verify, and Execute
Embedded Debug Challenges Traditional debugging with run-control halts program execution. The real world does not stop which makes run-stop debugging difficult. Program Halt is not practical in many applications Mechanical System: depends on movements that cannot be halted Motor Control: may even destroy the hardware due to overloading Communication: time-outs occur when hand-shake is missing Developers need solutions that: Provide verification and timings for algorithm development Work on standard hardware with minimal overhead Are easy-to-implement and easy-to-use RealView MDK includes: ULINK2 Real-Time Agent: allowing ‘on-the fly’ debugging
Enables target debugging on-the-fly that requires no system halts Real-Time Agent Enables target debugging on-the-fly that requires no system halts Small C Module Adds little overhead to user application ~1,500Bytes R/O Communicates using standard JTAG channel via ULINK2 On-the-fly Debugging Read and Write memory and variable access during program execution Set breakpoints while program is running Serial I/O (printf) via debug channel Application + Real-Time Agent JTAG CPU Peripherals
Evaluation Boards ARM7, ARM9 and Cortex-M3
Wide Range Evaluation Boards Proven hardware for quick project development and debug. Designed for easy set-up Extensive Program Examples. Wide range of peripherals Popular ARM based MCU’s STR750 STR91x LPC23x
RTX Real-Time Kernel
Why use a Real-Time Kernel? Building Block Software / Hardware interface layer Easy expansion of system software Hardware independent House Keeping Process scheduling CPU resource management Task communication Focus on Application Development Leave basic system management
Software Concepts for ARM The ARM core requires a different mindset for embedded applications. ARM7 & ARM9 have just two interrupt levels Standard (IRQ) and Fast (FIQ) but provide CPU modes with separate interrupt stacks for predictable stack requirements. ‘main’ as End-less Loop Solution for simple applications Usage together with powerful multi-level interrupt system Stack usage un-predictable Using a Real-Time Kernel Allows application to be separated into independent tasks Message passing eliminates critical memory buffers Each task has an own stack area Interrupt communication with event flags and messages
What makes a Good RTOS Performance Ease of Use System Friendly Predictable behaviour Low latency High number of interrupt levels Ease of Use Flexible API and implementation Tool-chain integration. Scheduling options Multitasking, Preemptive, Round Robin. System Friendly Consumes small amount of system resource Proven Kernel Low cost
Real-Time? Real-Time does not equal High Speed Not all tasks are ‘Super High Speed’ Systems perform to deadlines Tasks need to complete before deadline and other tasks Real-Time OS not to be confused with high speed requirements Real-Time, not mission critical Varying levels of Real-Time Hard, Firm, Soft and Non RTOS not confined to critical systems Real-Time OS = Building Block RTOS provides easy Multitasking Environment House keeping tasks
RTX Features Main Features Full-featured Real-Time kernel meets the requirements of a ‘good’ real-time kernel Main Features Multi-Tasking – Round Robin, Pre-emptive, Cooperative Unlimited – User Timers, Semaphores and Mailboxes Royalty free Task Specifications Priority Levels 256 No. of Tasks Defined Unlimited No. of Tasks Active Context Switch < 300 Cycles Interrupt Latency < 100 Cycles Memory Requirements Bytes CODE Space (depending on used functionality) 1.5K – 5K RAM Space (each active task requires an own stack space) < 500
RTX Real-Time Kernel Full-featured Real-Time kernel designed to meet the challenges of Embedded System Design Process Management Create and delete tasks Change task priorities Event flag management Interrupt functions CPU resources Multi-Tasking Preemptive context switching Scheduling Semaphore management Real-Time Control Deterministic behaviour Inter-task Communication Mailbox management Interface to interrupt functions Memory Allocation Thread-safe (usage even in ISR)
Tool Chain Integration RTX is fully integrated into RealView MDK for easy development and debugging Compilation Tasks are integrated into the RealView C Compiler language. Close integration in RealView MDK (µVision) µVision IDE automatically includes RTX Libraries void task1 (void) _task { … code of task 1 placed here…. }
RTX Setup All major parameters of RTX can be easily changed using the µVision configuration wizard.
Kernel Aware Debugging RTX and µVision are tightly integrated, kernel aware debugging is fully supported. Tasks and Event analysis Resource Loading Allowing resource optimisation 50
Examples and Templates RTX Examples Examples and Templates
RTX Examples Traffic Light LED’s are timed or controlled by push button Utilizes interrupt control, event management and multitasking capabilities of RTX Kernel Demonstrates RTX concepts
RTX Examples CAN Example using RTX Mailbox and event handling CAN Send (Tx) – shows automatic data handling capabilities CAN Rec – message checking with instant message receipt – task wait and return – almost impossible without Real-Time Kernel Analog Input Voltage CAN Tx Incremental Script CAN Rec LED’s
Get More Information Application Notes Program Examples Customers use www.keil.com on a daily basis to obtain program examples, latest technical information, and support. Application Notes Program Examples Device Database Support Knowledge Discussion Forum