More Related Content
Similar to The Advantages of NXP ARM based microcontrollers (20)
The Advantages of NXP ARM based microcontrollers
- 1. Copyright © 2016 SOMNIUM® Technologies Limited 1SOMN-MS-0051
Presented at ENOVA Paris 2016
Thu 15th Sept in the NXP IoT Truck Room
EUF-DES-T2250
Smaller, faster, lower-cost!
Benefits of NXP ARM microcontrollers
for embedded developers
Dave Edwards
CEO/CTO SOMNIUM® Technologies
11/09/2016
- 2. Copyright © 2016 SOMNIUM® Technologies Limited 2SOMN-MS-0051
Abstract
Time to market and development cost are driving
factors in embedded system design
Yet many developers aren't aware of the benefits in using ARM technology,
even in low-end resource constrained designs such as IoT edge nodes.
- 3. Copyright © 2016 SOMNIUM® Technologies Limited 3SOMN-MS-0051
Contents
Problems faced by embedded developers
An overview of ARM microcontroller hardware
How can using an ARM based device help?
ARM microcontroller and system architecture overview
NXP ARM microcontroller overview
Performance and energy overview
An overview of ARM software
An overview of NXP software ecosystem
Software tools and choices available
Demonstrations of the features available with NXP microcontrollers.
- 4. Copyright © 2016 SOMNIUM® Technologies Limited 4SOMN-MS-0051
Problems faced by embedded developers
- 5. Copyright © 2016 SOMNIUM® Technologies Limited 5SOMN-MS-0051
Time to market is important
Only 38% of projects are on time
62% of projects are late!
Every year its getting worse ...
- 6. Copyright © 2016 SOMNIUM® Technologies Limited 6SOMN-MS-0051
Choose your microcontroller wisely
Many chips are similar
Ecosystem is important
Not all ecosystems are equal ;-)
- 7. Copyright © 2016 SOMNIUM® Technologies Limited 7SOMN-MS-0051
Engineering challenges
Debugging is time consuming
Better debug tools are needed
Vendor supplied information is
vital
- 8. Copyright © 2016 SOMNIUM® Technologies Limited 8SOMN-MS-0051
How can using an ARM based device help?
Customer benefits from choice, features, availability and quality
ARM's business model amortizes cost of complex design across many customers
Semiconductor vendor leverages to build hardware and software ecosystem
Tools providers leverage compatibility to support a huge range of devices
- 9. Copyright © 2016 SOMNIUM® Technologies Limited 9SOMN-MS-0051
ARM microcontroller overview
- 10. Copyright © 2016 SOMNIUM® Technologies Limited 10SOMN-MS-0051
ARM Cortex-M : architecture advantages
Modern instruction set architecture and microarchitecture
First V7-M architecture device was Cortex-M3 announced in 2004
25 years younger than the 8051 architecture!
Designed to run high level C/C++
No need for assembly language = lower cost of software development
ARM Thumb®-2 technology has dense instruction encoding
Low gate count
Lower silicon cost
Small form factor packaged parts
Powerful
Significantly higher performance than 8-bit/16-bit microcontrollers
Energy Efficient
Fast and efficient interrupt handling
KL03 fits in the dimple of a golf ball!
● 1.9x1.6mm
● 48MHz Cortex M4
● 32KBytes ROM, 2K RAM
● 75 cents in quantities of 100,000
- 11. Copyright © 2016 SOMNIUM® Technologies Limited 11SOMN-MS-0051
ARM Cortex-M : huge range of choices available
Processor performance versus features versus cost
20MHz .. 200MHz+
Simple microcontroller (M0/M0+) thru DSP capable microcontroller (M3/M4) and beyond
Single core to multi-core
Memory size versus requirements versus price versus energy required
As little as required: 8KBytes ROM/1KBytes RAM
As much (?) as required: 2MByte ROM/256KByte RAM and beyond
Wide range of peripherals and interfaces
Sensors, USB, Ethernet, BLE
Highly integrated with great software enablement
Broadly compatibility instructions and source code
Can scale up (or down) your design as required
But ... beware of low-level system software differences
- 12. Copyright © 2016 SOMNIUM® Technologies Limited 13SOMN-MS-0051
Range of processor cores available
- 13. Copyright © 2016 SOMNIUM® Technologies Limited 14SOMN-MS-0051
Instruction set : clean superset from M0 upwards
- 14. Copyright © 2016 SOMNIUM® Technologies Limited 16SOMN-MS-0051
Cortex M0 system architecture
Common across all Cortex-M
● M0 supports up to
32 interrupt sources
●
16 (M0), 15 (M0+) cycle
interrupt latency
●
Number of priorities
can vary between devices
Program trace
Doesn't require high end
debug adaptors
All devices have this
Supports simple/low cost
debug adaptors
Typically:
at least 2..4 breakpoints
0..2 watchpoints
(can trigger things within PC range)
- 15. Copyright © 2016 SOMNIUM® Technologies Limited 17SOMN-MS-0051
Cortex M4 system architecture
Same as Cortex M0 NVIC with:
●
Up to 240 interrupt sources
●
12 cycle interrupt latency
●
Number of priorities
can vary between devices
OPTIONAL
Sophisticated trace
and triggers
BUT .. requires area, pins
and high end debug adaptor
All devices have this
Supports simple/low cost
debug adaptors
- 16. Copyright © 2016 SOMNIUM® Technologies Limited 18SOMN-MS-0051
NXP ARM-based microcontroller overview
- 17. Copyright © 2016 SOMNIUM® Technologies Limited 19SOMN-MS-0051
Kinetis family
- sensors and analog integration
KV10 is possibly the
highest performance
Cortex M0+ device available
High performance
Large memory
Sensors and interfaces
Low cost, small memory,
small physical size
- 18. Copyright © 2016 SOMNIUM® Technologies Limited 20SOMN-MS-0051
LPC family
- optimized for power and cost
LPC8xx :
● low power
● space efficient
● low-pin count
●
great for 8/16 -bit migration
All are Cortex M4 based
● Many single core devices
● Some LPC43xx & LPC5xxx
devices are dual core Cortex
M4 and a Cortex M0+
- 19. Copyright © 2016 SOMNIUM® Technologies Limited 21SOMN-MS-0051
Measuring energy consumption
SOMNIUM are members of the EEMBC®
Automotive Subcommittee and use their
industry standard benchmarks.
We measure energy, measured to the uJ using
the high accuracy EEMBC EnergyMonitor™
EEMBC CoreMark™ is used to demonstrate the
usable performance of a processor system
running typical algorithms including list
processing (to stress test data accesses), matrix
manipulation (to stress test and mathematical
operations, and state machines (to stress test
complex control flows).
- 20. Copyright © 2016 SOMNIUM® Technologies Limited 23SOMN-MS-0051
Wide range of performance and energy options
Higher performance
Lower energy
More expensive
Extreme performance
Higher energy
More expensive
Baseline device
●
Good performance
●
Low energy consumption
●
Low cost
- 21. Copyright © 2016 SOMNIUM® Technologies Limited 25SOMN-MS-0051
ARM software ecosystem overview
- 22. Copyright © 2016 SOMNIUM® Technologies Limited 26SOMN-MS-0051
CMSIS
Cortex Microcontroller Software Interface Standard
Some components are supported by silicon vendors
Other components are not supported by silicon vendors
Available from ARM , and from some software tools vendors
Be aware ...
Some implementations of some features are NULL
Implementations vary (features, bugs etc.)
Are you using the “official” silicon vendor version?
There is no standards compliance procedure
- 23. Copyright © 2016 SOMNIUM® Technologies Limited 27SOMN-MS-0051
What's in CMSIS?
Used in evaluation board
OpenOCD debug probes.
Segger & PEMicro are
significantly faster and
more robust
Generally supplied
pre-compiled
No publicly available
test suite
Some parts are “essential”
Some parts are obsoleted by
vendor-specific APIs
Not widely used?
- 24. Copyright © 2016 SOMNIUM® Technologies Limited 28SOMN-MS-0051
CMSIS files
Originated by ARM
For a given Cortex <X> device (<X> = 0, 3, 4, 7)
core_cm<X>.h global declarations and definitions, function protoypes
core_cm<X>.c global definitions (functions and data)
Originated by silicon vendor
For a given <device> e.g. MK64F12
system_<device>.h device specific definitions (memory mapped registers etc.)
system_<device>.c device specific function definitions
(sometimes vector table is supplied as .s file)
<device>.h device specific definitions (registers etc.)
- 25. Copyright © 2016 SOMNIUM® Technologies Limited 29SOMN-MS-0051
NXP microcontroller software ecosystem overview
- 26. Copyright © 2016 SOMNIUM® Technologies Limited 31SOMN-MS-0051
NXP Kinetis: Kinetis SDK v2: CMSIS “and more”
Pre-integrated with industry
standard RTOS
Not like CMSIS:
No concept of separate HAL
and driver layers
Minimal implementation
(use Kinetis-specific
Peripheral drivers instead)
- 27. Copyright © 2016 SOMNIUM® Technologies Limited 32SOMN-MS-0051
Kinetis Expert: web based SDK creator
● Select components and export source code
● New tool to configure pins etc.
● Check everything is correctly setup
- 28. Copyright © 2016 SOMNIUM® Technologies Limited 33SOMN-MS-0051
Kinetis Design Studio (KDS)
- free of charge Eclipse IDE + GNU tools
SOMNIUM Technologies worked with Freescale to produce KDS
Windows, Linux & MacOSX hosts
Vanilla code generation and debug
- 29. Copyright © 2016 SOMNIUM® Technologies Limited 34SOMN-MS-0051
NXP LPC: LPCOpen: CMSIS “and more”
High quality free of charge middleware
Different APIs to Kinetis
equivalents
Flexible configurations and
mostly “compliant” CMSIS-CORE
- 30. Copyright © 2016 SOMNIUM® Technologies Limited 35SOMN-MS-0051
LPCXpresso
- Eclipse IDE + GNU tools
Free of charge (256KByte codesize limit)
Windows, Linux & MacOSX hosts
Vanilla code generation
Advanced trace
- 31. Copyright © 2016 SOMNIUM® Technologies Limited 36SOMN-MS-0051
NXP software enablement summary
Separate software enablement for Kinetis and LPC devices
Both Kinetis and LPC have their own history
A few compatibility “bumps” along the way
Kinetis Design Studio and LPCXpresso are similar but different
Both have vanilla GNU tools, Eclipse IDE platform
Both are free (for initial versions)
Different user interface and project formats
LPCXpresso has more debug features
3rd party tools are available : SOMNIUM DRT
Tight integration with NXP enablement
Can import existing Kinetis and LPC projects with no source code changes
Compatible with historical Kinetis and LPC enablement
And current/future enablement
Also supports a wider range of devices
- 32. Copyright © 2016 SOMNIUM® Technologies Limited 37SOMN-MS-0051
SOMNIUM® DRT -
Professional C/C++ development environment
Save memory
smaller ROM/RAM device, lower cost designs
Save money
faster time to market, optimize BOM costs
Increase performance
more features, “do more with less”
Save energy
higher quality design, reduce lifetime costs
- 33. Copyright © 2016 SOMNIUM® Technologies Limited 38SOMN-MS-0051
DRT supports the latest C/C++ standards
SOMNIUM
DRT
C standards
C: ISO/IEC 9899:2011 (known as C11) yes
C99 yes
GNU99 yes
C90 yes
C89 yes
C++ standards
C++14 yes
C++11 yes
C++03 yes
C++ exception handling yes
“vanilla”
GNU products
? no
yes ?
yes no
yes yes
yes yes
? no
yes no
yes yes
no (Newlib only) ?
- 34. Copyright © 2016 SOMNIUM® Technologies Limited 39SOMN-MS-0051
Rigorous approach to correctness & quality
To our best knowledge no other tools vendors apply this rigour
Tests are applied on-host (simulated) and on-target (real silicon)
Tested to destruction ! Flash ROM wears out after ~2 months of our testing
3 axis testing : size and performance and energy
DejaGNU tests: GNU compatibility conformance
SolidSands SuperTest: C/C++ standard conformance and functional correctness
Over 136,000 individual tests per Cortex-M variant (~4 hours on-host run time)
NULLSTONE for C: optimization test suite
Almost 40,000 individual tests (over 48 hours run time if using one board at a time)
EEMBC® Autobench™ and CoreMark™
Over 3,000 examples and demos from our semiconductor partners
SOMNIUM proprietary test suite
Well placed for future certification (e.g. ISO26262)
Moving forwards not backwards
Full regression testing to ensure each release is better than the last
- 35. Copyright © 2016 SOMNIUM® Technologies Limited 40SOMN-MS-0051
SOMNIUM® DRT :
The professional C/C++ development environment
Advanced Eclipse based IDE
Ease of use enhancements
Best in class debug and trace
Windows and Linux hosted, MacOSX (coming soon)
Advanced C/C++ code generation
Patented resequencing optimizations
Smaller, faster, more energy efficient code
No source code changes required
Technical support
Direct from SOMNIUM's customer engineering team
Regular product updates and new features
- 36. Copyright © 2016 SOMNIUM® Technologies Limited 41SOMN-MS-0051
SOMNIUM® DRT
- GNU compatible with added benefits
Free of charge tools use "vanilla" GNU Commercial tools also use "vanilla" GNU
Software enablement is supplied as GNU compatible source code
SOMNIUM® DRT is the only product which offers
GNU compatibility with advanced code generation
- 37. Copyright © 2016 SOMNIUM® Technologies Limited 42SOMN-MS-0051
DRT recognizes that memory is the bottleneck
SOMNIUM® DRT optimizes for the whole system
It dominates
performance and cost
- 38. Copyright © 2016 SOMNIUM® Technologies Limited 43SOMN-MS-0051
Benchmark proven:
Smaller, faster, lower energy
EEMBC® CoreMark® built with DRT
Up to 29% energy saving
Up to 38% higher performance
Up to 12% ROM saving
Up to 21% RAM saving
- 39. Copyright © 2016 SOMNIUM® Technologies Limited 44SOMN-MS-0051
Small memory footprint for C execution
Kinetis Cortex M0+ example (KL46Z)
Hardware initialization before main () and “Empty” C program
int main (int argc, char *argv[])
{
while (1) {};
return 0;
}
DRT significantly reduces ROM/ROM footprint
a huge impact on usability of small memory low-cost devices
LPC Cortex M0+ example (LPC824)
ROM RAM
KBytes KBytes
DRT 0.6 n/a n/a 0.1 n/a n/a
LPCX Nano 1.0 72% 424 0.1 -3% -4
LPCX RedLib 2.6 359% 2112 1.1 691% 968
DRT saving
(% and bytes)
DRT saving
(% and bytes)
ROM RAM
KBytes KBytes
DRT 1.5 n/a n/a 0.1 n/a n/a
KDS3 Nano 2.4 59% 908 0.6 314% 440
KDS3 Newlib 3.9 164% 2504 1.5 1009% 1412
CW10.6 Nano 2.5 66% 1004 0.6 317% 444
CW10.6 Newlib 4.5 201% 3064 1.5 1009% 1412
CW10.6 EWL 5.0 238% 3632 4.1 2863% 4008
DRT saving
(% and bytes)
DRT saving
(% and bytes)
- 40. Copyright © 2016 SOMNIUM® Technologies Limited 45SOMN-MS-0051
Real world middleware demos
Only DRT can fit into a 128KByte device
other tools need the more expensive
256KByte varient
Attach V1 Demo @ Os : doesn't fit with KDS3 Nano
ROM RAM
KBytes DRT saving KBytes DRT saving
DRT 123.5 n/a 13.5 n/a
KDS3 Nano 128.4 4% 13.4 0%
KDS3 Newlib 137.3 11% 15.4 15%
Attach V2 Demo @ -Os : features cut so KDS3 Nano just fits
ROM RAM
KBytes DRT saving KBytes DRT saving
DRT 122.0 n/a 14.9 n/a
KDS3 Nano 127.0 3% 14.9 0%
KDS3 Newlib 144.8 17% 17.0 26%
Kinetis “Attach” demo (MKL26Z128)
Uses Sensor Fusion & EGUI middleware
ROM RAM
KBytes DRTsaving KBytes DRTsaving
“Outofbox”Optimizedforspeed@ O3
DRT 39.7 n/a n/a n/a
KDS3 Nano 47.9 21% 8448 0%
CW10.6 Nano 43.2 9% 3617 -2%
Optimizedforsize @ Os
DRT 35.2 n/a n/a n/a
KDS3 Nano 38.1 8% 2952 0%
Kinetis Sensor Fusion Library (FRDM-KL46)
Uses Sensor Fusion middleware
DRT significantly reduces ROM usage
when optimizing for size
and when optimizing for speed
- 41. Copyright © 2016 SOMNIUM® Technologies Limited 46SOMN-MS-0051
Unique project importers
Import and automatic conversion from
Atmel START (GPDSC format)
KDS 2
KDS 3x
CodeWarrior for MCUs 10.6 (GNU projects)
CodeWarrior for MCUs (non GNU projects)
LPCXpresso
Atollic TrueSTUDIO (STM32CubeMX)
Coming soon
SW4STM32
STM32 CubeMX custom “SOMNIUM DRT” format
MBED
- 42. Copyright © 2016 SOMNIUM® Technologies Limited 47SOMN-MS-0051
Leading edge debug features
Live viewing of memory/variables – no need to breakpoint!
- 43. Copyright © 2016 SOMNIUM® Technologies Limited 48SOMN-MS-0051
Leading edge debug features
MTB trace on Cortex M0+ (auto configured, full debug features)
- 44. Copyright © 2016 SOMNIUM® Technologies Limited 49SOMN-MS-0051
Leading edge debug features
Fault diagnosis – extract and decode, navigate source code
- 45. Copyright © 2016 SOMNIUM® Technologies Limited 50SOMN-MS-0051
SOMNIUM® DRT Cortex-M IDE
Wide range of host support
Windows and Linux, Mac OSX (coming soon)
Wide range of target support
Single User Fixed Perpetual license $2,500 €2,100
Any one user at a time, on a fixed machine
One SOMNIUM portal account
Three User Floating Perpetual license $6,000 €5,200
Any three users at a time, on a any machine
Three SOMNIUM portal accounts
12 months support and updates included
Annual renewal for 20% of purchase price
- 46. Copyright © 2016 SOMNIUM® Technologies Limited 51SOMN-MS-0051
Summary
Choosing the right microcontroller and the right tools is critical
Make the right choice and you can save time, money and get the best results!
ARM devices
Competitive cost, features and energy
Wide range of devices
Great choice - cost, performance, energy, features
Strong ecosystem support from NXP
SOMNIUM DRT - the professional C/C++ IDE
Offers real advantages to developers
Save time, money, get best results
Only solution to provide GNU compatibility and benefits
High quality technical support
- 47. Copyright © 2016 SOMNIUM® Technologies Limited 52SOMN-MS-0051
Please get in touch for more information
dave.e@somniumtech.com
Demos running on Booth F120
Free of charge trials of SOMNIUM DRT are available
http://www.somniumtech.com/product-selector