SOMNIUM® DRT Benchmarks Whitepaper DRT 4.0 release : March 2017 www.somniumtech.com

SOMNIUM® DRT is a complete C/C++ embedded software Microchip SAM examples Atmel START was used to create an "empty" C program including Atmel Software Framework development environment which supports ARM® Cortex® M (ASF) routines to configure the on-chip PLL to highest devices from leading semiconductor vendors. possible frequency on a SAMD21 device (32KByte ROM, Vendor Family Cortex 4KByte RAM). IAR Embedded Workbench uses less memory than vanilla GNU tools from Atmel Studio, DRT Microchip SAM M0+, M3, M4 does even better and uses the smallest amount of ROM. Kinetis M0+, M4 NXP ROM RAM LPC M0, M0+, M3, M4 DRT is smaller DRT is smaller KBytes KBytes (% and bytes) (% and bytes) STMicroelectronics STM32 M0, M0+, M3, M4 DRT 1.5 n/a n/a 8.7 n/a n/a Other software vendors use adjectives. SOMNIUM use Atmel STUDIO 1.8 24.1% 360 8.7 0.0% 0 facts. This whitepaper compares benchmarking results for IAR 1.5 2.4% 36 8.6 -0.4% -32 SOMNIUM DRT against other toolchain products to demonstrate that DRT builds the smallest, fastest most energy efficient code with no source code changes required. NXP Kinetis examples We used NXP's Kinetis SDK v2 (now No defeat devices! Unlike many well known software renamed as MCUXpresso SDK) tools to create an "empty" C vendors, SOMNIUM play fair and do not put “benchmark program (including use of Kinetis SDK v2 routines to enable special” features in our products to change their behavior in the on-chip PLL) for a KL25Z device. DRT saves a significant the presence of known tests. We don't alter the benchmark amount of ROM compared to both vanilla GNU tools and source code, and we always use the same tool options to get IAR tools. an honest and fair comparison. Kinetis Cortex M0+ KSDK v2 example (KL25Z)

Small memory footprint for C execution ROM RAM DRT uses a highly tuned and specifically configured C DRT is smaller DRT is smaller KBytes KBytes runtime library with a reduced memory footprint: (% and bytes) (% and bytes)  Over 100% smaller ROM usage than GNU Newlib. DRT 3.7 n/a n/a 2.5 n/a n/a  Smaller ROM usage than GNU Newlib Nano. KDS 3 6.7 79.8% 3056 2.5 0.0% 0  Around 100% smaller statically allocated RAM overhead IAR 5.5 48.4% 1852 2.1 -16.4% -420 than GNU Newlib Nano and GNU Newlib. Before KSDK v2 (now renamed MCUXpresso SDK), NXP's  Unlike vanilla GNU Newlib Nano, memory is statically software enablement strategy was focussed on using the allocated (where possible) and so RAM usage is easily CMSIS-Core standard to enable the on-chip PLL before predicted by build time pass/fail. calling main(). We used CMSIS-Core GNU sources for an  Vastly smaller ROM and RAM usage than NXP RedLib. "empty C" program to compare tools. Once again DRT uses  Similar/smaller ROM usage to IAR. the smallest amount of ROM and RAM. These savings are  Full support for C++ exception handling within the small very significant on small memory devices such as the KL memory footprint library. series (starting at 8K ROM, 1K RAM). A simple “empty” C program was used to show the minimum Kinetis Cortex CMSIS-Core M4 example (K64F) ROM/RAM requirement to establish a C environment: ROM RAM int main (int argc, char *argv[]) { DRT is smaller DRT is smaller KBytes KBytes while (1) {} return 0; (% and bytes) (% and bytes) } DRT 0.7 n/a n/a 0.3 n/a n/a KDS 3 Nano 2.5 250% 1840 0.6 101% 292 These memory savings made by DRT can have huge practical impact on the usability of small memory KDS3 Newlib 4.0 454% 3340 1.5 439% 1264 devices. DRT can save development time (by allowing CW10.6 Nano 2.6 264% 1940 0.6 103% 296 software development in C rather than ARM assembly CW10.6 Newlib 4.6 545% 4008 1.5 439% 1264 language), and increase the potential to use smaller CW10.6 EWL 4.9 583% 4292 4.1 1344% 3872 memory (and lower cost, lower energy) devices. TrueSTUDIO 0.9 22% 160 1.0 268% 772

SOMNIUM and the SOMNIUM logo are registered trademarks of SOMNIUM® Technologies Limited 2016 - 2017 SOMNIUM® Technologies Limited All other product or service names are the property of their respected owners. SOMNIUM-MS-0049 v5.0b SOMNIUM® DRT Benchmarks Whitepaper

Kinetis Cortex M0+ CMSIS-Core example (KL46Z) STMicroelectronics Cortex M4 example (STM32F446RE)

ROM RAM ROM RAM DRT is smaller DRT is smaller DRT is smaller DRT is smaller KBytes KBytes KBytes KBytes (% and bytes) (% and bytes) (% and bytes) (% and bytes) DRT 0.6 n/a n/a 0.3 n/a n/a DRT 3.3 n/a n/a 1.5 n/a n/a KDS3 Nano 2.4 317% 1852 0.6 101% 292 SW4STM32 3.4 3% 104 1.5 0% 4 KDS3 Newlib 3.9 590% 3448 1.5 439% 1264 TrueSTUDIO 3.4 2% 76 1.5 0% 0 CW10.6 Nano 2.5 334% 1948 0.6 103% 296 IAR 3.5 6% 204 1.5 -2% -36 CW10.6 Newlib 4.5 686% 4008 1.5 439% 1264 We also tried creating an empty project using each IDE's CW10.6 EWL 5.0 784% 4576 4.1 1340% 3860 NPW and compared results. DRT's memory savings have a TrueSTUDIO 0.6 -3% -20 0.3 1% 4 significant impact on the use of small memory STM32 devices, especially compared to SW4STM32. NXP LPC examples NXP's LPCXpresso did not provide a standalone tool to create LPC projects (like Kinetis Expert) so STM32F0 : Cortex M0+ we took a the LPCOpen "periph_blink" demo and removed ROM RAM the body code from main(). DRT is smaller DRT is smaller KBytes KBytes (% and bytes) (% and bytes) DRT leaves more space for your application by making significant memory savings on small memory devices DRT 0.5 n/a n/a 0.1 n/a n/a such as the LPC8xx series (starting at 4K ROM, 1K RAM). SW4STM32 0.7 42% 200 0.0 -71% -96 TrueSTUDIO 0.5 17% 80 0.2 21% 28 LPC Cortex M0+ example (LPC824) STM32F4 : Cortex M4 ROM RAM ROM RAM DRT is smaller DRT is smaller KBytes KBytes DRT is smaller DRT is smaller (% and bytes) (% and bytes) KBytes KBytes DRT 2.9 n/a n/a 0.0 n/a n/a (% and bytes) (% and bytes) DRT 0.7 n/a n/a 0.1 n/a n/a LPCX Nano 3.6 24% 720 0.1 1600% 128 LPCX RedLib 4.8 64% 1924 0.5 5800% 464 SW4STM32 0.7 0% 0 0.0 -71% -96 TrueSTUDIO 3.2 9% 284 0.0 0% 0 TrueSTUDIO 0.9 36% 244 0.0 -74% -100

LPC Cortex M4 example (LPC54114) Industry standard benchmarks

ROM RAM SOMNIUM are members of the EEMBC® Automotive DRT is smaller DRT is smaller Subcommittee and use their industry standard benchmarks. KBytes KBytes (% and bytes) (% and bytes) We believe that in order to be useful, benchmarks should DRT 4.1 n/a n/a 0.0 n/a n/a show 3 dimensions - not just performance, but memory size and energy. It's easy to obtain higher performance by LPCX Nano 4.5 9% 364 0.0 0% 0 unrolling, inlining and LPCX RedLib 5.8 40% 1712 0.3 2800% 336 specializing functions to the TrueSTUDIO LPC54114 not supported in TrueSTUDIO extreme, but real world systems are memory limited STMicroelectronics STM32 examples so this approach makes little We used STM32CubeMX to create an "empty C" program sense if you want to get an using the HAL to enable clocks and PLL, perform default accurate understanding of real initialization of GPIO, etc. DRT's savings are significant on world behaviour. We always low-memory devices such as the STM32L0 (8K ROM). measure both memory size, performance and where STMicroelectronics Cortex M0+ example (STM32L011D3) possible we measure energy, ROM RAM measured to the uJ using the high accuracy EEMBC DRT is smaller DRT is smaller EnergyMonitor™ (due to its 29mA current limitation we KBytes KBytes (% and bytes) (% and bytes) couldn't use it to perform measurements on all devices). DRT 2.7 n/a n/a 1.5 n/a n/a CoreMark™ is used to demonstrate the usable performance SW4STM32 3.0 13% 348 1.5 0% 4 of a processor system running typical algorithms including TrueSTUDIO 3.0 12% 316 1.5 0% 0 list processing (to stress test data accesses), matrix manipulation (to stress test and mathematical operations, IAR 2.7 1% 16 1.5 -2% -36 and state machines (to stress test complex control flows).

SOMNIUM and the SOMNIUM logo are registered trademarks of SOMNIUM® Technologies Limited 2016 - 2017 SOMNIUM® Technologies Limited All other product or service names are the property of their respected owners. SOMNIUM-MS-0049 v5.0b SOMNIUM® DRT Benchmarks Whitepaper

Microchip SAM results KV10 devices use an M0+ processor and have high performance memory systems, with a 16-entry, 4-way set We compare DRT to the vanilla GNU tools from Atmel Studio associated flash cache. Even with this high performance and Atollic TrueSTUDIO's recent vanilla GNU tools. hardware, DRT significantly improves KV10 performance DRT didn't affect RAM usage, but always generated the and energy whilst reducing codesize. smallest code and the fastest and lowest energy results.

K21 devices K21 use an M4 processor and has an extreme performance memory system with a 128-bit speculation buffer and a 16-entry, 4-way 128-bit line set associated flash cache. Even with the K21's sophisticated cache, DRT provides significant energy savings, whilst also reducing codesize and improving performance.

NXP Kinetis results We compared against the latest KDS3.2 tools (which use an older version of the GNU ARM Launchpad tools to avoid some code generation bugs present in newer versions of the NXP LPC results vanilla GNU tools), and also compared against the latest We compared DRT to the LPCXpresso/MCUXpresso tools vanilla GNU ARM Launchpad tools used in the MCUXpresso which use vanilla GCC5x (similar to the GNU tools as used in IDE. Atollic TrueStudio) both of which contain code generation KL02 devices are quite constrained by their memory size and bugs (which are not present in DRT's validated tools). performance. Even with low-end devices, DRT provides LPC8xx devices LPC824 is an entry level device with no flash huge performance increase of over 50% compared to cache. DRT improves performance and energy usage vanilla GNU tools, with significant memory and energy whilst producing significant reductions in memory usage. savings.

SOMNIUM and the SOMNIUM logo are registered trademarks of SOMNIUM® Technologies Limited 2016 - 2017 SOMNIUM® Technologies Limited All other product or service names are the property of their respected owners. SOMNIUM-MS-0049 v5.0b SOMNIUM® DRT Benchmarks Whitepaper

STMicroelectronics STM32 results integrated with Atmel START for ASF project creation and provides state of the art debug facilities. We also offer We compared DRT against the SW4STM32 tools and SOMNIUM DRT Atmel Studio Extension - a plugin for Atmel TrueSTUDIO (both of which use the same vanilla GNU GCC Atmel Studio 7 which is provided as a new toolchain “flavor”. 5x/6x tools as free of charge products and contain the same Using DRT rather than the default GNU tools is a simple press bugs which are fixed in DRT's validated tools). button activity requiring no source code changes or change STM32F446 has 64-bit wide flash, with a very sophisticated of environment. 1KByte flash cache comprising 32 * 32 byte lines and a Across the 2,343 unique ASF examples built @ Os similar 256byte structure for data accesses to flash which (optimize for size) on average DRT consumes 32% less allow the Cortex M4 processor to run at full speed without ROM than the default Atmel Studio GNU tools. being impacted by instruction fetch latency. SAMD21freertos_oled1_tickless_xpro_example DRT increased performance whilst also using smaller ROM and RAM footprint. Sadly we couldn't measure the A basic FreeRTOS demo from Atmel START using SAMD21 energy benefits of DRT as EEMBC EnergyMonitor can't supply (Cortex M0+). The SAMD21 is not supported in TrueSTUDIO enough current to power this MCU. so we created a project for SAMD20 instead ROM RAM DRT is smaller DRT is smaller KBytes KBytes (% and bytes) (% and bytes) DRT 9.3 n/a n/a 11.5 n/a n/a Atmel STUDIO 10.5 13.3% 1260 11.5 -0.1% -12 TrueSTUDIO 9.7 5.0% 472 11.5 0.0% 0

Micrium_uCOSII_Led_Blink_SAM4S_Xpro example A basic Micrium Demo from Atmel START shows the ROM/RAM overhead on a SAM4S (Cortex M4):

STM32L053 is an ultra low power device with a very simple ROM RAM DRT is smaller DRT is smaller flash buffer rather than a cache. DRT can significantly KBytes KBytes improve its performance and energy behaviour whilst (% and bytes) (% and bytes) using less ROM and RAM. “out of the box” @ -O1 using Newlib DRT 11.9 n/a n/a 17.9 n/a n/a Atmel STUDIO 22.9 92.4% 11280 20.0 11.5% 2120 “size optimized” @ -Os using Newlib Nano DRT 11.3 n/a n/a 17.9 n/a n/a Atmel STUDIO 12.6 11.5% 1332 18.0 0.1% 24

SAMB11 PXP demo uses a BLE software stack supplied as a prebuilt library, which DRT can't optimize. Despite this library forming over 70% of the codesize of this demo, DRT still provides moderate memory savings. This shows how DRT can leave more memory available for your application in resource constrained devices even when it is used with pre- “Real world” demonstration systems built libraries which it can't optimize. Its not just benchmarks! We examined applications which ROM RAM DRT is smaller DRT is smaller use “real world” middleware including FreeRTOS, Micrium KBytes KBytes uCOS, code generated using Atmel START and Atmel (% and bytes) (% and bytes) Software Framework, (Kinetis) Processor Expert, Kinetis SDK DRT 35.5 n/a n/a 7.7 n/a n/a v2/MCUXpresso SDK, Sensor Fusion Library, LPCOpen and Atmel STUDIO 38.2 7.5% 2716 7.8 0.2% 16 STM32CubeMX. SAMD21 USB CDC demo implements a USB Composite Microchip ASF examples Device with Communication Device Class (CDC) and Mass SOMNIUM DRT Cortex-M IDE supports Microchip devices and Storage interfaces on a SAMD21 device. The source was is available on Windows, Linux and macOS. DRT is fully downloaded from Atmel START and is available for GNU and

SOMNIUM and the SOMNIUM logo are registered trademarks of SOMNIUM® Technologies Limited 2016 - 2017 SOMNIUM® Technologies Limited All other product or service names are the property of their respected owners. SOMNIUM-MS-0049 v5.0b SOMNIUM® DRT Benchmarks Whitepaper

IAR tools. Many parts of ASF use GNU-specific C extensions before heap and stack are allocated!) such as typeof which aren't supported by IAR's non GNU- Attach V2: reduced features to fit with KDS3 compatible compiler, the CDC demo is a rare example which can be built using IAR without changes. DRT generates a Freescale made significant source modifications such that smaller ROM image for the vanilla GNU and the IAR tools. when built with KDS3 Newlib Nano, Attach V2 “just” fits into ROM RAM the available ROM and RAM. When built with DRT, both DRT is smaller DRT is smaller Attach V1 and V2 fit into the available ROM and RAM. No KBytes KBytes (% and bytes) (% and bytes) source code changes were required, no features were DRT 8.4 n/a n/a 10.4 n/a n/a removed, and DRT could import the project and realize these savings automatically. Atmel STUDIO 9.7 14.8% 1280 10.4 0.0% 0 IAR 9.6 13.8% 1191 10.3 -0.3% -32 Attach V2 Demo @ -Os : features cut so KDS3 Nano just fits ROM RAM SAMD21 BLE HR-Sensor demo contains a BLE stack provided DRT is smaller DRT is smaller KBytes KBytes as an IAR-prebuilt library which corresponds to around 50% (% and bytes) (% and bytes) of the total ROM usage. DRT can link against this library but DRT 121.6 n/a n/a 14.9 n/a n/a cannot optimize it. Despite this, DRT generates a ROM size KDS3 Nano 127.0 4% 5544 14.9 0% -22 comparable to the IAR tools and significantly smaller KDS3 Newlib 144.8 19% 23771 25.0 68% 10320 than vanilla GNU tools used in Atmel Studio and other products such as Atollic TrueSTUDIO. NXP Sensor Fusion Library ROM RAM The Sensor Fusion Library and its example programs were DRT is smaller DRT is smaller KBytes KBytes supplied as KDS3 source projects. We used DRT's automatic (% and bytes) (% and bytes) KDS project importer/convertor to avoid the need for any DRT 48.9 n/a n/a 17.3 n/a n/a manual steps (this isn't possible with Atollic's tools which Atmel STUDIO 54.1 10.7% 5352 17.5 1.3% 224 require manual conversion, and similarly it isn't possible IAR 46.4 -5.2% -2608 17.4 0.3% 52 with MCUXpresso IDE which can't import existing KDS projects) but we manually ported this example to NXP Kinetis examples TrueSTUDIO to compare results. We examined a number of examples of NXP's Kinetis KL46Z Sensor Fusion software enablement which is supported for CodeWarrior ROM RAM and KDS (NXP don't provide a migration route to their new DRT is smaller DRT is smaller KBytes KBytes MCUXpresso IDE though SOMNIUM DRT can migrate existing (% and bytes) (% and bytes) projects!). Some Kinetis components (such as CMSIS) are “Out of box” @ O3 also supported for IAR tools, but several key items of DRT 40.2 n/a n/a 7.1 n/a n/a software enablement (including Sensor Fusion and Intelligent Sensor Framework) are only provided for GNU KDS3 Nano 47.9 19% 7936 7.1 0% 4 compatible tools (CodeWarrior and KDS). As DRT is fully CW10.6 Nano 43.2 8% 3105 6.9 -2% -158 GNU compatible it supports all NXP Kinetis software Optimized for size @ Os enablement without requiring any source code changes. DRT 34.8 n/a n/a 7.1 n/a n/a “Attach” is a Freescale produced demonstration program, KDS3 Nano 38.1 9% 3328 7.1 0% 4 originally written using CodeWarrior 10.6, then ported by TrueSTUDIO 37.5 8% 2732 7.1 0% -4 Freescale to KDS2. This demonstration shows that “off the shelf” Kinetis Attach V1: only fits when built with DRT software enablement ports to DRT with no changes Attach V1 Demo @ Os : doesn't fit with KDS3 Newlib or Nano required and uses significantly less ROM built with DRT. ROM RAM When options are modified to optimize for size, DRT still DRT is smaller DRT is smaller produces the smallest executable. KBytes KBytes (% and bytes) (% and bytes) KSDK v2 adc_16_lower_power_async_dma DRT 123.1 n/a n/a 13.5 n/a n/a KDS3 Nano 128.4 4% 5462 13.4 -1% -74 A KSDK v2 example available for GNU and IAR tools which uses ADC and DMA APIs widely used in real applications. KDS3 Newlib 137.3 12% 14575 15.4 14% 1974 Once again DRT requires less ROM than both IAR's tools No KDS configurations (KDS2, KDS3, Newlib or Newlib Nano) and vanilla GNU tools, and less RAM than vanilla GNU result in an executable which fits within the MKL26Z128 tools. device (ROM usage is too large, and RAM is almost full even

SOMNIUM and the SOMNIUM logo are registered trademarks of SOMNIUM® Technologies Limited 2016 - 2017 SOMNIUM® Technologies Limited All other product or service names are the property of their respected owners. SOMNIUM-MS-0049 v5.0b SOMNIUM® DRT Benchmarks Whitepaper

ROM RAM industrial product designers a simple, plug-and-go way to get DRT is smaller DRT is smaller data into an endless variety of control, monitoring, data KBytes KBytes (% and bytes) (% and bytes) collection, maintenance, medical and even fun applications." DRT 6.4 n/a n/a 2.5 n/a n/a Built with DRT the QuickJack demo is significantly KDS 3 9.7 52.0% 3384 3.0 19.9% 512 smaller than LPCXpresso using RedLib, and is also IAR 8.1 27.3% 1774 2.2 -13.7% -352 smaller than built with IAR. Gesture recognition demo KSDK v2 KL25Z FreeRTOS framework The LPC824 Touch Library API is used to drive and scan We used KSDK v2 (now renamed MCUXpresso SDK) to create capacitive sensors, processes their signal data, filters out a FreeRTOS demo and exported it as IAR source and KDS noise and provides touch data. The LPCOpen Touch source. DRT always builds the smallest ROM image Library is supplied pre-built and accounts for ~45% of this compared to IAR and vanilla GNU. demo's ROM usage. As such it can't be optimized by DRT ROM RAM though DRT still provides impressive memory savings DRT is smaller DRT is smaller compared to both IAR and the vanilla GNU tools used in KBytes KBytes (% and bytes) (% and bytes) LPCXpresso/MCUXpresso and TrueSTUDIO. DRT 9.3 n/a n/a 19.5 n/a n/a ROM RAM DRT is smaller DRT is smaller KDS 3 11.6 24.7% 2348 19.5 0.0% 0 KBytes KBytes (% and bytes) (% and bytes) IAR 10.5 13.4% 1270 18.5 -5.2% -1040 DRT 10.3 n/a n/a 3.4 n/a n/a NXP LPC examples LPCX Nano 11.0 6% 644 11.0 0% 4 LPCX RedLib 12.2 18% 1860 12.2 10% 340 We examined a number of NXP LPC software examples for LPCXpresso which make use of LPCOpen components. TrueSTUDIO 11.0 6% 652 3.4 0% 4 IAR 11.4 10% 1048 3.4 0% 4 LPCOpen FreeRTOS blinky demo @ -Os A basic FreeRTOS demo from LPCOpen showing the basic STMicroelectronics STM32 examples overhead required for LPCOpen & FreeRTOS. DRT's ROM We tested DRT with the STM32CubeMX demo examples savings show how using DRT frees up valuable memory, supplied for GNU and IAR tools. These examples use real leaving space for your application. For this demo IAR uses CubeMX middleware widely used in real applications. marginally less ROM than DRT, but requires significantly more RAM which is very limited on the target LPC824 These examples show that DRT generates significantly device (8KBytes ROM, 2KBytes RAM). smaller code than IAR's proprietary non-industry standard compiler and other vanilla GNU tools. It also ROM RAM shows that SW4STM32 has some severe codebloat for DRT is smaller DRT is smaller KBytes KBytes Cortex M4 devices compared to other vanilla GNU tools. (% and bytes) (% and bytes) DRT 6.1 n/a n/a 0.4 n/a n/a STM32F091RC_Nucleo “photoframe” demo ROM RAM LPCX Nano 7.0 14% 896 7.0 29% 128 DRT is smaller DRT is smaller LPCX RedLib 7.5 23% 1420 7.5 78% 348 KBytes KBytes (% and bytes) (% and bytes) IAR 5.5 -10% -595 1.8 325% 1442 DRT 30.4 n/a n/a 18.7 n/a n/a LPC824 QuickJack demo SW4STM32 38.1 25.0% 7792 18.7 0.1% 20 TrueSTUDIO 31.3 2.7% 848 18.7 0.0% 4 "The flexible Smartphone Quick-Jack Solution adapts the standard 3.5 mm stereo audio jack found on most iOS or IAR 36.4 19.5% 6085 19.1 2.4% 464 Android smart devices into a self-powered data port and STM32F4xx_Nucleo “photoframe” demo provides a universal interface for external sensors, switches ROM RAM and other external devices. It gives both consumer and DRT is smaller DRT is smaller KBytes KBytes ROM RAM (% and bytes) (% and bytes) DRT is smaller DRT is smaller KBytes KBytes DRT 28.0 n/a n/a 7.6 n/a n/a (% and bytes) (% and bytes) SW4STM32 35.3 26.4% 7560 7.7 0.5% 36 DRT 10.3 n/a n/a 3.4 n/a n/a TrueSTUDIO 42.4 51.7% 14812 8.9 16.5% 1288 LPCX Nano 11.0 6% 644 11.0 0% 4 IAR 32.6 16.6% 4767 8.0 4.6% 360 LPCX RedLib 12.2 18% 1860 12.2 10% 340 TrueSTUDIO 11.0 6% 652 3.4 0% 4 IAR 11.4 10% 1048 3.4 0% 4

SOMNIUM and the SOMNIUM logo are registered trademarks of SOMNIUM® Technologies Limited 2016 - 2017 SOMNIUM® Technologies Limited All other product or service names are the property of their respected owners. SOMNIUM-MS-0049 v5.0b SOMNIUM® DRT Benchmarks Whitepaper

Not all tools are equal Summary Other free of charge and commercial products freeload on DRT is the ideal upgrade path from entry level tools, with the vanilla GNU ARM Launchpad project and offer no benefits unique features and validated tools to generate the best over free products, generating code which is significantly code quality and save development time and money. worse than IAR's proprietary compiler. DRT's device-aware code generation builds the most DRT offers full GNU compatibility combined with our efficient program for your choice of Cortex-M device, with no patented resequencing linker and libraries to optimize your source code changes required. code to save memory, energy and deliver higher performance compared to vanilla GNU tools and other DRT IDEs also include state of the art debug and trace proprietary compilers such as IAR EWARM. features to improve productivity and help you reach market faster. SOMNIUM are experts in GNU internals and maintain tools for leading semiconductor vendors. DRT uses SOMNIUM's DRT is available in three flavors. custom build of GNU tools, fully debugged, bugfixed and DRT MCU support IDE tested using commercial validation suites used for other certified ISO26262 tools. Atmel Studio Microchip SAM Windows hosted Atmel Extension Visual Studio Unlike other GNU compatible products we take quality seriously so you can be sure each release of DRT generates Cortex-M IDE1 Microchip SAM Windows, Linux and correct code with smaller, faster, more optimal results than NXP Kinetis macOS hosted Eclipse the previous version. NXP LPC, IDE with state of the art STMicroelectronics debug and trace Interested in certified tools? Find out about DRT ISO26262 STM32 qualification kit by emailing [email protected] Technical support and updates Trial and buy DRT is provided with full documentation, include a getting start guide and full reference manual. Our Youtube channel The pricing of the DRT tools, combined with the flexible contains training and demonstration videos of DRT's licensing terms, mean that DRT is a very competitive solution features. The SOMNIUM portal provides access to our for professional software developers. knowledgebase, support portal and ticketing system. Free trial licenses are available to enable you to test the DRT DRT licensees get complimentary access to the portal with tools with your project. The SOMNIUM advanced project product updates for 12 months, and you can renew this each importer makes it easy to migrate your code to DRT for year for 20% of purchase price. DRT is a mature product, but evaluation and future development work. we provide updates approxmiately every 3 months - with DRT trial licenses are fully-functional but time limited. This new features, new optimizations and support for our silicon means you can test all the features of DRT on a full-size partners' latest devices. project to ensure it meets your needs. Industry partners Find out more and get a free of charge fully featured trial of DRT from the SOMNIUM portal: SOMNIUM are a Microchip Trusted Third Party Supplier. www.somniumtech.com/product-selector SOMNIUM are NXP Proven Partners and produced Kinetis Design Studio for Freescale. Watch video tutorials and demonstrations at: SOMNIUM displaced RedHat as the GNU services provider to www.youtube.com/c/somniumtech Texas Instruments for the MSP430 GNU tools. SOMNIUM are founder members of the Embedded Tools Alliance.

www.somniumtech.com/eta

1 SOMNIUM NXP Edition IDE also available (only supporting NXP devices)

SOMNIUM and the SOMNIUM logo are registered trademarks of SOMNIUM® Technologies Limited 2016 - 2017 SOMNIUM® Technologies Limited All other product or service names are the property of their respected owners. SOMNIUM-MS-0049 v5.0b SOMNIUM® DRT Benchmarks Whitepaper

SOMNIUM and the SOMNIUM logo are registered trademarks of SOMNIUM® Technologies Limited 2016 - 2017 SOMNIUM® Technologies Limited All other product or service names are the property of their respected owners. SOMNIUM-MS-0049 v5.0b