- DO-178 & Multicore Training
Fast, cost-effective timing analysis
RapiTime reduces the time and effort required to obtain verification data such as worst-case execution time metrics, and use this data to optimize your code. RapiTime results identify the timing behavior of each function in the code under test, and which sections of code are most likely to improve the overall timing behavior when optimized.
- 1 of 4
- next ›
RapiTime can be integrated to work with almost any compiler and target hardware. Our integration service promises to deliver a robust integration of RapiTime into your build system.
When you run your code on-target, or on-host using a simulator, RapiTime collects several timing metrics. These include worst-case execution time, high and low water mark paths, and minimum, average and maximum execution times for each test of your code.
The worst-case execution time reported by RapiTime is pessimistic, meaning the actual worst-case execution time of your code could not be higher than that reported by RapiTime. This satisfies the stringent requirements of embedded system certification.
RapiTime includes inbuilt functionality to let you determine the execution time overhead of adding instrumentation to your source code. This overhead can then be automatically subtracted from the timing metrics reported by the tool.
As with all RVS tools, RapiTime supports collection of timing data on multi-core architectures. RapiTime achieves this by suspending data collection during a task interrupt and reinitializing collection when the task on the current core resumes execution. You can also use RapiTime to identify the interference produced by other cores on your system under test.
The instrumentation overheads for RapiTime tools are very low, and zero-instrumentation overhead can even be supported in some cases, depending on your target hardware and data collection strategy. This means that you can use RapiTime with virtually any target.
You can use timing metrics to optimize your code for timing behavior. RapiTime highlights the costliest functions in terms of execution time, guiding you towards the best optimization candidates. By running RapiTime again after you optimize your code, you can determine performance improvements.
RapiTime supports C, C++ and Ada projects, including mixed-language ones.
RVS tools support Windows 7 or newer, Windows Server 2008 R2 or newer, and a variety of Linux distributions including Ubuntu and Red Hat.
RVS tools can be used on projects with unsupported operating systems by using a clone integration to split the process and delegate parts of it to the unsupported machine.
RVS tools can be integrated to work with almost any embedded target. Our engineers can work with you to determine the optimal strategy for integrating the tool with your target, even for multi-core architectures. For more information on the hardware architectures we have integrated RVS tools with, see our support specification.
RVS tools can be used on projects built with almost any compiler.
The non-exhaustive list below shows some of the compilers we have worked with:
- GNAT GPL
- GNAT Pro
- Borland C++
- Ada MULTI
- C MULTI
- Embedded Workbench
- Visual Studio
- CodeWarrior HCS12
Due to their flexible integration strategies, RVS tools can collect data from almost any target CPU.
The non-exhaustive list below shows some of the architectures that RVS tools can be used with:
- Power Architecture (MPC5xx, MPC55xx, MPC56xx)
- ARM Cortex-M microcontrollers (Kinetis E series, Kinetis K series, Kinetis L series, Kinetis M series, Kinetis W series).
- 56k DSP family
- QorIQ (P2010, P2020, P4080, P5010, P5020, P5021, P5040)
- PowerPC (PPC) implementations:
- G1 (601)
- G2 (602, 603, 604, 620)
- G3 (740/750)
- 7xx/750 family
- G5/970 series
- 440 range
- XE166 family (XE161, XE162, XE164, XE167, XE169)
- XC 2000 family (XC2200, XC2300, XC2700)
- C166 family
- TriCore (TC1130, TC1724, TC1728, TC1766, TC1767, TC179x, TC1796 , TC1797, AUDO)
- Tricore Aurix (TC21x, TC22x, TC23x, TC24x, TC26x, TC270, TC290)
- ARM7-based series (LPC2100, LPC2200, LPC2300, LPC2400)
- ARM9-based series (LPC2900, LPC3100, LPC3200)
- ARM Cortex-M0 based series (LPC1100, LPC1200)
- ARM Cortex-M0+ based series (LPC800)
- ARM Cortex-M3 based series (LPC1300, LPC1700, LPC1800)
- ARM Cortex-M4 series (LPC4000, LPC4300)
Renesas (previously Hitachi, Mitsubishi, NEC)
- RX family
- RZ family
- SuperH family
- RH850 Family
- ARM-based parts (STR7, STR9, STM32 F0, STM32 F1, F2, L1, W, STM 32 F3, F4)
- TMS320 (DSP)
- Stellaris (ARM Cortex-M3)
- Hercules - TMS570 (ARM Cortex-R4)
- TMS470M ARM Cortex-M3
- RM4 ARM Cortex-R4
We are able to cater for a wide variety of systems in addition to those stated above. Please contact us if you have any questions.