Post on 20-Apr-2018
Title 44pt Title Case
Affiliations 24pt sentence case
20pt sentence case
© ARM 2016
ARM Keil MDK IDE and Middleware for ARM Cortex-M based MCUs
Satish K
FTD Solutions PTE LTD
ARM Tech Forum 2016 – Singapore
August 30th 2016
© ARM 2016 2
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Keil MDK Version 5 Development System M
DK
To
ols
S
oft
ware
Packs
MDK-Core ARM C/C++ Compiler DS-MDK
Device
µVision IDE with Pack Management
ARM Compiler 5 with Qualification Kit
µVision Debugger with Streaming Trace
Startup
Device HAL
CMSIS Drivers
CMSIS
CMSIS-Core
CMSIS-DSP
CMSIS-RTOS
DS-5 IDE with Pack Management
DS-5 Debugger with Streamline
Middleware
USB Host
File System Graphics
USB Device
IPv6 Network IPv4 Network
ARM Compiler 6 LLVM Technology
mbed TLS SSL/TLS Encryption
mbed Client IoT Connector
July 2016
© ARM 2016 3
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
MDK Editions Professional Plus Cortex-M Lite
µVision
IDE with Editor, Pack Installer
Debugger
32 KB
ARM Compiler
C/C++ Compilation Tools
Extended Maintenance and Qualification Kit
32 KB
ARM Processor Support
ARM Cortex-M
ARM SecurCore (SC000, SC300)
ARM7, ARM9, ARM Cortex-R4
RTOS and Middleware
CMSIS-RTOS RTX with full source code
Middleware (IPv4 Network, USB Device, File System, Graphics)
Middleware (IPv6 Network, USB Host , IoT Connectivity)
Pricing $$$ $$ $ free
© ARM 2016 4
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
DS-MDK for Cortex-A/M Hybrid Devices
i.MX 7Solo
Debug
Analyze Optimize
OS awareness
keil.com/mdk5/ds-mdk
Multicore Support
© ARM 2016 5
Text 54pt sentence case ARM C/C++ Compiler
© ARM 2016 6
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Reference compiler for the ARM Architecture
Co-developed with the ARM Processor cores
Supplied with MicroLib C library for smallest code size
Extended Support branch available
Support for safety critical projects
ARM Compiler v5
© ARM 2016 7
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Safety Manual
Usage information relevant to safety critical software developers
Definition of the safety function
Behaviour under erroneous conditions
Error detection facilities
Defect Report
Listing of all known defects that cause run-time failures and any known workarounds
Perennial Test Report
Tests conformance to the ISO c90 and c99 C language standards and the ANSI/ISO C++
standard
Software Development Process Document
Description of the ISO 9001:2008 compliant software development process
ARM Compiler Qualification Kit Included in Keil MDK Professional Edition
© ARM 2016 8
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Commitment to Functional Safety
• Safety Manual
• Qualification
Results
• Development
Interface
Agreement
• Qualification Kit
• TÜ V Certification
• Extended
Maintenance
• Streaming Trace
• Full MC/DC Code
Coverage
• Execution Profiler
• MISRA checking
• Device Selftest
• Policy-driven
Development
IP Compiler Testing Third Party
Solutions for the complete development process
© ARM 2016 9
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
ARM Compiler 6
ARM Compiler 6 is the next generation
Based on open source LLVM compiler framework
Optimizations for ARM Cortex-M
Performance improvements
Support for C++11, C++14, C14 language features
Preview for ARMv6-M and ARMv7-M architectures
Default compiler for ARMv8-M architecture
© ARM 2016 10
Text 54pt sentence case Cortex Microcontroller Software Interface Standard (CMSIS)
© ARM 2016 11
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case Third Party
Software Pack
CMSIS Version 4
Cortex-M
CPU SysTick
RTOS Kernel Timer
NVIC Nested Vectored
Interrupt Controller
Debug +
Trace CoreSight Other
Peripherals
Application Code
CMSIS-RTOS API
CMSIS-Driver API
Middleware
Code Templates
Code Templates
CMSIS-DAP
Real Time Kernel 3rd Party
Device HAL Silicon Vendor
CMSIS-CORE Core Access Functions, SIMD Intrinsics for Cortex -M4, Peripheral & Interrupt Definitions
CMSIS-
SVD
CMSIS-DSP DSP Library
Debugger
CMSIS Software Pack
Microcontroller
© ARM 2016 12
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
API describing
peripheral driver
interfaces for
middleware stacks and
user applications
Generic and
independent of a
specific RTOS
Covers a wide range of
use cases for the
supported peripheral
types
CMSIS-Driver 2.0 Software Packs
USART
SPI #1
SPI #2
USB Controller
USB Controller
Ethernet PHY
SDIO
Memory Controller
Middleware
Graphics
USB Device
File System
USB Host
TCP/IP
Networking
Device
Startup/System
USART1 USART Driver
SPI1
SPI2 SPI Driver
MCI0
NAND0
MCI Driver
NAND Flash Driver
USBD0 USB Device Driver
ETH_PHY0
USBH0 USB Host Driver
Ethernet PHY
RTE_Device.h
Configuration File
Ethernet MAC ETH_MAC0 Ethernet MAC
USB
I/O
SDIO0
SPI2
SPI1
Rx1/Tx1
USB
Ethernet
Control
Structs
Microcontroller
© ARM 2016 13
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Web Portal for Software Packs
© ARM 2016 14
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Commitment to Standardization
Higher Software Productivity
Removes unnecessary differentiation
But allows relevant product differentiation
Faster Device Support
CM
SIS-
Pac
k
Application Framework
CMSIS-Driver CMSIS-CORE
CMSIS-DSP
Cortex® -M
CPU Peripherals
CMSIS-RTOS
CoreSight™
CMSIS-DAP
CMSIS-SVD
Device Family Pack
Evaluation Board
Flash Programming
Debug Awareness
Web Portals
Device Parameters
Documentation
Software Driver
Development Tools
DS5, Eclipse, MDK,
IAR and others
© ARM 2016 15
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Traditional Device Support
Device Support using CMSIS-Pack Early verification during chip design
phase better overall quality
One Pack for multiple tool chains
Flexible distribution to early/general
availability customers faster
development start
Faster Device Support with CMSIS-Pack
Device Vendor (SiP)
• Create CMSIS Files
Tool Vendor A
• Integration into tool chain
• Verification Tool Vendor B
• Integration into tool chain
• Verification Tool Vendor C
• Integration into Tool Chain
• Verification
Customers
• Use Published Devices
Device Vendor (SiP)
• Create CMSIS Files
• Create Software Pack
• In-house Verification
• Flexible Publishing
Development Tools
• Automatic Integration
• Customers can use right away
• Optional Distribution to Early Customers only
Verification failed
© ARM 2016 16
Text 54pt sentence case RTOS & Middleware
© ARM 2016 17
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
CMSIS-RTOS RTX Real-Time OS
Source included in all MDK editions
Supports cooperative, round-robin and pre-emptive scheduling
Low interrupt latency, zero latency for Cortex-M3/M4
Unlimited number of tasks
Memory footprint < 5 KB
Kernel-aware debug in MDK
© ARM 2016 18
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Market Leading RTOS
Source: 2015 UBM Electronics Embedded Market Study
© ARM 2016 19
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
CMSIS-RTOS RTX Benefits
Commercial level RTOS at no additional cost
Royalty-free with source code included in MDK
Fully integrated into µVision IDE and Debugger
RTX kernel-aware tools enable easy configuration and debug
Flexible scheduling
Choose between pre-emptive, round robin, or co-operative
Developed specifically for embedded systems
Fast operation, with memory footprint as small as 5 KB
© ARM 2016 20
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
MDK Middleware
Enable users to develop projects faster
Applications easily developed within µVision IDE
Numerous examples and templates provided
Low risk solution
Single vendor for development tools and middleware
Optimized for Cortex-M based devices
Relies on CMSIS-Driver 2.0 and CMSIS-RTOS
Part of MDK-Professional or MDK-Plus
Middleware
USB Host
File System Graphics
USB Device
IPv6 Network IPv4 Network mbed TLS SSL/TLS
Encryption
mbed Client IoT Connector
© ARM 2016 21
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Middleware: Network
Add IPv4/IPv6 TCP/IP
network connectivity
via Ethernet or Serial
Extensive range of
service applications
Specifically designed
for devices with small
memory footprint
Network Component
Servic
e Full Web Server
Using File System
So
cket
BSD UDP TCP
Compact
Web Server FTP Server
TFTP
Server
Telnet
Server
FTP Client TFTP Client SMTP
Client DNS Client
SNTP
Client
SNMP
Agent
Inte
rface
Ethernet SLIP (Serial) PPP (Serial)
CORE
with
IPv4/IPv6
Dual-
Stack
© ARM 2016 22
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Middleware: USB Host
Connect common USB
devices easily
Support for various
popular microcontroller host controllers
High performance and small footprint
USB 1.1 Low Speed (1.5 Mbit/s) and Full Speed (12 Mbit/s)
Supports USB Flash drives and card storage devices
USB Host component available in MDK-Professional only U
SB
Ho
st
HID
Human Interface Device USB Host Core
Custom
Custom Device Class
CDC
Communications Device
MSC
Mass Storage Class
© ARM 2016 23
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Middleware: USB Device
Standard USB Device
classes supported
Plug’N’Play: No need to
develop a driver for Windows or Linux hosts
USB 1.1 Low Speed (1.5 Mbit/s) and Full Speed (12 Mbit/s)
USB Device component available in MDK-Professional and MDK-Plus
US
B D
evic
e
HID
Human Interface Device USB Device Core
Custom
Custom Device Class
CDC
Communications Device
MSC
Mass Storage Class
ADC
Audio Device Class
© ARM 2016 24
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Middleware: File System
Enable applications to work
with locally stored data
Storage devices: ROM, RAM,
Flash, and SD/MMC/SDHC
FAT32 file system supported
Simultaneous access to multiple storage devices
File System component available in MDK-Professional and MDK-Plus
File System Component
Dri
ve
RAM
File System
Core
NOR Flash
SD/MMC
Memory Card
USB MSC
Mass Storage Class
NAND Flash
© ARM 2016 25
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Middleware: Graphic
Add a graphical user
interface (GUI) to an
application quickly
Compatible with hundreds
of display controllers
Touch-screen support for
many TFT LCDs
Graphics Component
Co
re
Widgets Dialogs
Window Manager
Fonts
Bitmap Support
Inp
ut
Touchscreen Joystick
Antialiasing
LCD Configuration GUI Configuration
Dis
pla
y
Demo VNC Server
Interface Template Preconfigured Interfaces
© ARM 2016 26
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Middleware: Graphic
Compatible with hundreds
of display controllers
Includes binary libraries
and display drivers
Includes rapid GUI design
tools and utilities
Sources available
from Segger
Graphic component available in MDK-Professional and MDK-Plus
© ARM 2016 27
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
mbed TLS and mbed Client
mbed TLS Cryptography library
TLSv1.2, SSLv3
X.509 certificate and key handling
Random number generation
Helper tools for certificates
mbed Client IoT connectivity
CoAP implementation
Compatible with mbed Device
Connector Service
LWM2M compliance
Fully integrated and supported mbed components
© ARM 2016 28
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
HTTPS support
MDK Middleware HTTP server now supports encryption
with mbed TLS
Documentation explains how to add mbed TLS to existing
projects
More crypto protocols are work in progress (FTPS,
SMTPS)
© ARM 2016 29
Text 54pt sentence case µVision IDE & Debugger
© ARM 2016 30
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
µVision IDE
Project Management
Source Code Editing
Program Debugging
Trace Viewing
Well-known environment
Optimized for MCU
development
© ARM 2016 31
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Device Support
Support for more than 3200 devices
using Device Family Packs
System and startup code, device header files
SVD files
Flash algorithms
Development board information
Example projects
User code templates
© ARM 2016 32
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
µVision Ease of Use
Software Configuration
Configuration Wizard configures
software parameters
Examples and Templates
Fast out-of-box experience
Can be used in actual project
BSPs for numerous boards
© ARM 2016 33
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Run-time Environment Configuration
© ARM 2016 34
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
µVision Source Code Editor
The Error List window summarizes all
potential syntax errors and warnings in
the current module.
The Functions window
gives fast access to
functions for each
C/C++ source code
module. Dynamic Syntax Checking shows
syntax violations and reduces
edit-compile-correction cycles.
While typing code, the editor
shows Function Parameters and
the Code Completion list.
© ARM 2016 35
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Kernel-Aware Debugging
System and Thread Viewer
together with Event Viewer
helps to track the progress of
the program
© ARM 2016 36
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Component Viewer (Preview)
XML-based description of software
components like networking library,
USB stack
Provides human-readable information
about static memory variables,
structures and objects
Improves debugging of middleware
components
© ARM 2016 37
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Component Viewer Description Files
Component descriptions are
either shipped in Packs or
created locally
Application Note 283 explains
how to create a description
© ARM 2016 39
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Logic Analyzer
Allows signals to be monitored graphically
Monitor variables in the application
Accurate timing
Easy, fast analysis of signal timing with
access to source code
View delta changes from cursor
to current location
Code analysis
View instruction that caused
variable change
© ARM 2016 40
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Code Coverage
Complete software validation
requires code coverage
Product liability and industry standards
(IEC61508) demand for testing according
to “State of Science and Technology”
methodologies
ETM provides complete instruction
stream
Non-intrusive - use final, optimized code
at full speed
Feedback provided directly in the debugger
Source & disassembly view
Color-coded details for individual instructions
Summary analysis by function or module
Log File Support
© ARM 2016 41
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Performance Analyzer
Instruction Trace provides timing
information
Identify where most time
is spent in your application
Isolate problems by finding
which C statements take
longer than expected to
execute
© ARM 2016 42
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Trace Data
Execution history of all executed instructions
Trace Data window displays: Timing and assembly code synchronized to the C source code
Instruction Trace is useful to analyse sporadic problems
Data corruption by incorrect interrupt/thread protection
Incorrect timing caused by interrupt/thread nesting
© ARM 2016 43
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
System Viewer
Displays information about peripheral
registers
Allows on-the-fly debugging of
Special Function Registers (SFRs)
Use it to:
View peripheral register property values
View additional information about a property
Change properties at runtime (click into the
value field and enter a new value)
© ARM 2016 44
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Advantages of Software Components in Keil MDK
Enhanced Productivity
• Convenient selection of software components
• Easy access to documentation
• Code templates and examples to kick-start development
Long-term Project Maintenance
• Software Packs with update facility and version management
• Simplifies the replacement of the target device
Improved Flexibility
• Support for new devices is provided by Software Packs
• Open standard allows adding third party components
© ARM 2016 45
Text 54pt sentence case Debug Adapters and Development Boards
© ARM 2016 46
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
CoreSight
Trace Port Interface
Cortex-M
CPU Core
Run Control
Breakpoint Unit
Memory Access Unit
ITM
Instrumentation Trace
ETM Instruction Trace
(optional)
DWT Data Watchpoint &
Trace Unit
Serial Wire
Trace Output
4-Pin
Trace Output
Debug Interface
JTAG
Debug
Serial Wire
Debug
Cortex Debug
10-Pin Connector
Cortex Debug + ETM
20-Pin Connector
SWJ
SWO
JTAG or Serial Wire Debug
© ARM 2016 47
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
ULINK Debug and Trace Adapters
ULINK2: Debug + Serial Wire Trace
Flash Programming + Run-Control
Memory + Breakpoint
(access while running)
Serial Wire Trace Capturing up to
1 Mbit/sec (UART mode)
ULINKpro: adds ETM + Streaming Trace
For Cortex-M up to 200 MHz
50 MHz JTAG clock speed
Serial Wire Trace Capturing up to 100
Mbit/sec (Manchester Mode)
ETM Trace Capturing up to 800 Mbit/s
Virtually unlimited Trace Buffer
Streaming Trace
JTAG
SWD
SWO 100 Mpbs
ETM Streaming
JTAG
SWD
SWO 1 Mpbs
© ARM 2016 48
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Streaming Trace
Trace data transferred in real-time to host
Capture size only limited by host resources
Trace for minutes, hours, or longer
Required for full code-coverage and
timing analysis
Trace data is available instantly
Host Computer running µVision
Code
Coverage
Performance
Analyzer
Trace Data
Harddisk
© ARM 2016 49
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
ULINKpro – Fastest Data Trace 100 x faster than most other MCU
solutions
Real-Time data trace analysis
CPU operates at full speed
No overflows or lost data
MDK gives clear visibility
into application behaviour
© ARM 2016 50
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
ULINKpro Benefits
Streaming Instruction Trace
Debug historical sequences
Full details of execution history
Application Soak testing over long
periods of time
Performance Analysis
Optimize and Profile Applications
Identify hotspots quickly
Code Coverage
Implement 100% accurate Code
Coverage on silicon
Essential for validation and verification
Fastest Data Trace
100 times faster than any other solution
CPU at full speed
No overflows or lost data
© ARM 2016 51
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Comparison of ULINK Debug and Trace Units
ULINKpro ULINKpro D ULINK2
Features
Run Control Debug
Memory + Breakpoint (while running)
Data Trace (Cortex-M3/M4/M7)
Instruction Trace (Cortex-M3/M4/M7)
Performance
JTAG Clock speed
Memory read/write
Data & Event Trace (SWO)
Instruction Trace (ETM)
50 MHz
1 MByte/s
100 Mbit/s
800 Mbit/s
50 MHz
1 MByte/s
100 Mbit/s
10 MHz
25 KByte/s
1 Mbit/s
Analysis Tools
Logic Analyzer
Performance Analyzer
Execution Profiling
Code Coverage
© ARM 2016 52
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Keil Development Boards
Wide range of development boards
NXP Cortex-M0/M3/M4
STMicroelectronics Cortex-M3/M4
Nuvoton Cortex-M0
Toshiba Cortex-M3
Spansion Cortex-M3
Check www.keil.com/boards2 for a complete list
© ARM 2016 53
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
MDK5 Device List – www.keil.com/dd2
© ARM 2016 54
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
MDK Version 5
Full development suite
Easy project creation/configuration
Full integration of CMSIS
Advanced debug views
Fully featured, royalty free commercial
grade RTOS: CMSIS-RTOS RTX
Complete middleware bundle
Industry standard compiler
ARMCC is the reference compiler for
ARM
MicroLib can be used to dramatically
reduce ROM footprint
Advanced debug with ULINKpro
Streaming Trace
100% accurate code coverage
Performance and execution analysis for
optimisation
The possibility for extended testing (soak testing)
with debug information
100 x faster data trace than any other solution
© ARM 2016 55
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Get more Information
MDK Version 5 : www.keil.com/mdk5
Getting Started Guide : www.keil.com/gsg
µVision Debugger : www.keil.com/debug
CoreSight Details : www.keil.com/coresight
ULINK Family of Debug Adapters : www.keil.com/ulink
The trademarks featured in this presentation are registered and/or unregistered trademarks of ARM Limited
(or its subsidiaries) in the EU and/or elsewhere. All rights reserved. All other marks featured may be
trademarks of their respective owners.
Copyright © 2016 ARM Limited
© ARM 2016