somnium drt c++ tools for microchip arm microcontrollers

25
Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 1 SOMN-P-0002 SOMNIUM DRT C/C++ tools for Microchip ARM microcontrollers Dave Edwards Founder and CEO/CTO 12/3/2017

Upload: daniel-ohara

Post on 16-Apr-2017

56 views

Category:

Software


6 download

TRANSCRIPT

Page 1: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 1SOMN-P-0002

SOMNIUM DRT C/C++ tools for Microchip ARM microcontrollers

Dave EdwardsFounder and CEO/CTO

12/3/2017

Page 2: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 2SOMN-P-0002

Problems faced by embedded developers

Page 3: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 3SOMN-P-0002

Time to market is important

Only 38% of projects are on time 62% of projects are late! Every year its getting worse ...

Page 4: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 4SOMN-P-0002

Choose your microcontroller wisely

Many chips are similar Ecosystem is important Not all ecosystems are equal ;-)

Page 5: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 5SOMN-P-0002

SOMNIUM® DRT is the solution

Page 6: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 6SOMN-P-0002

SOMNIUM® DRT - Professional C/C++ development environment

Save memorysmaller ROM/RAM device, lower cost designs

Save moneyfaster time to market, optimize BOM costs

Increase performancemore features, “do more with less”

Save energyhigher quality design, reduce lifetime costs

Page 7: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 7SOMN-P-0002

SOMNIUM® DRT :The professional C/C++ development environment Advanced Eclipse based IDE

Modified CDT for usability features State of the art debug and trace Importers to support legacy projects

and semiconductor partner enablement Windows, Linux and macOS hosted

Advanced C/C++ code generation Validated with ISO26262 testsuite Patented resequencing optimizations Smaller, faster, energy efficient code No source code changes required

Technical support and product updates Direct from SOMNIUM's customer engineering team

Page 8: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 8SOMN-P-0002

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 5,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

Page 9: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 9SOMN-P-0002

DRT recognizes that memory is the bottleneck

SOMNIUM® DRT optimizes for the whole system

It dominates performance and cost

Page 10: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 10SOMN-P-0002

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).

Page 11: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 11SOMN-P-0002

Wide range of performance and energy options

Higher performanceLower energyMore expensive

Extreme performanceHigher energyMore expensive

Baseline device● Good performance ● Low energy consumption● Low cost

Page 12: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 12SOMN-P-0002

DRT is benchmark proven: Smaller, faster, lower energy

EEMBC® CoreMark® built with DRTUp to 54% higher performance

Up to 44% lower energyUp to 14% smaller ROMUp to 21% smaller RAM

Page 13: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 13SOMN-P-0002

Real world middleware demos : Microchip

SAMB11 PXP demofrom Atmel START

SAM D21 Light sensor demo (from Atmel START)

DRT builds smaller code than vanilla GNU and IAR tools

DRT builds smaller codethan vanilla GNU

despite prebuilt BLE library using ~70% of ROM space

ROM RAM

KBytes KBytes

DRT 8.4 n/a n/a 10.4 n/a n/a

Atmel STUDIO 9.7 14.8% 1280 10.4 0.0% 0

IAR 9.6 13.8% 1191 10.3 -0.3% -32

DRT is smaller(% and bytes)

DRT is smaller(% and bytes)

ROM RAM

KBytes KBytes

DRT 35.5 n/a n/a 7.7 n/a n/a

Atmel STUDIO 38.2 7.5% 2716 7.8 0.2% 16

DRT is smaller(% and bytes)

DRT is smaller(% and bytes)

ROM RAM

KBytes KBytes

DRT 4.3 n/a n/a 8.4 n/a n/a

Atmel STUDIO 4.8 12% 508 8.4 0% 0

IAR 4.7 10.5% 461 8.4 0.1% 12

DRT is smaller(% and bytes)

DRT is smaller(% and bytes)

SAM USB CDC demo (from Atmel START)

Page 14: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 14SOMN-P-0002

Unique project importers

DRT QuickFix identifies issues and applies fixes Bad launch configurations Host OS specific directory/filenames Bad/inconsistant configuration options

Import and automatic conversion from Atmel Studio/START (GPDSC format) Atollic TrueSTUDIO KDS 2, KDS 3x CodeWarrior for MCUs 10.6 (GNU projects) CodeWarrior for MCUs (non GNU projects) LPCXpresso/MCUXpresso SW4STM32, STM32CubeMX

More importers on the roadmap ...

Page 15: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 15SOMN-P-0002

Integrated lightweight C/C++ static analysis

“As you type” detection of errors, Quick Fixes for common issues Sensible default configurations Checks for user configurable for customized coding/naming conventions

Page 16: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 16SOMN-P-0002

State of the art debug : Live memory view

No impact on the target - no breakpoint, no extra code, no timing or performance impact Full C/C++ typecasting

Page 17: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 17SOMN-P-0002

State of the art debug : Cortex-M0+ MTB trace

No need to read the ARM hardware documentation Automatically configured

no need to specify address of buffer

Page 18: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 18SOMN-P-0002

State of the art debug : Fault analysis

No need to read the ARM hardware documentation Fault diagnosis – extract and decode, navigate source code

Page 19: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 19SOMN-P-0002

State of the art debug: RTOS aware

Inspect and select each thread Wittenstein plugin to inspect synchroniziation objects (mutex etc.)

Page 20: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 20SOMN-P-0002

Integrated Percepio Tracealyzer

Integrated into DRT for FreeRTOS and Micrium uCOS/III RTOS trace and analysis

Page 21: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 21SOMN-P-0002

SOMNIUM® DRT Cortex-M IDE

Wide range of host support Windows, Linux and macOS

Wide range of target support

Single User Fixed Perpetual license $2,500 Any one user at a time, on a fixed machine One SOMNIUM portal account

Three User Floating Perpetual license $6,000 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

Page 22: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 22SOMN-P-0002

SOMNIUM® DRT Atmel Studio Extension

Extends Atmel Studio 7 IDE with DRT code generation

Supports Atmel SMART ARM Cortex-M devices SMART general purpose MCUs: SAM D*, SAM S*, SAMN* SMART ultra low power MCUs: SAM L*, SAM G* SMART 5v MCUs: SAM C* SMART connectivity MCUs: SAM E*, SAM 3*

Single User Fixed Perpetual license $750 Any one user at a time, on a fixed machine One SOMNIUM portal account

12 months support and updates included Annual renewal for 20% of purchase price

Page 23: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 23SOMN-P-0002

DRT is competitively priced and has no “linger time” on floating licenses

Page 24: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 24SOMN-P-0002

Founding member of the Embedded Tools Alliance

A collaboration of industry-leading independent embedded system vendors

We help customers select the best components from a number of different suppliers, safe in the knowledge that the individual components are of

the highest quality, proven to work together, and do exactly what's required so the customer can concentrate on their development work

rather than fighting with a disparate set of legacy tools and environments

Page 25: SOMNIUM DRT C++ tools for Microchip ARM microcontrollers

Copyright © 2016 - 2017 SOMNIUM® Technologies Limited 25SOMN-P-0002

Summary

SOMNIUM DRT - the professional C/C++ IDE Available on Windows, Linux and macOS The only GNU-compatible tools with validated quality and enhanced code generation Enhanced IDE for high productivity and start of the art debug Full support for our silicon partners' enablement

Premier/proven partner status with silicon partners High quality technical support Using DRT will save you time, money and help you get the best results

Regular DRT releases and product roadmap more optimizations, more features, more target device support

Founder member of Embedded Tools AllianceHighest quality tools, well integrated support with other leading suppliers products