RealView® Development Suite 4.1 is complete, end-to-end solution for software development that supports all ARM processors and ARM CoreSightdebug technology. RealView tools offer the highest-performance ARM C/C++ compilers and support the most advanced debug technology available today for bringing up the latest SoC and ASIC designs. RVDS is available in Standard and Professional Editions. The Standard Edition offers the following components
- The highly optimizing ARM Compiler targeted at currently available devices
- ARM Workbench IDE, which aims to increase software developer´s productivity by helping with project creation and improves insight in the source, object and executable code.
- ARM RVD™ Debugger supporting JTAG and CoreSight enabled debugging
The ARM® Compiler in ARM RVDS™ 4.1 is the only commercial compiler co-developed with the ARM processors and specifically designed to optimally support the ARM architecture. It is the result of 20 years of development and is recognized as the industry standard C and C++ compiler for building applications targeting the ARM, Thumb, Thumb-2, VFP and NEON instruction sets.
- ARM processors are designed to best execute code generated by the ARM Compiler
- ARM Compiler enables the new processor features in all the ARM processors
- Profile-Driven Compilation automatically optimizes code based on runtime information
- The ARM Compiler supports building of Symbian OS and ARM Linux applications and libraries
The RVDS 4.1 compiler reduces the best codesize by up to 5% and improves the best performance by 10-15% when compared to RVDS 4.0.
In addition to the ARM Compiler, the state-of-the-art NEON Vectorizing Compiler, which is part of RVDS Professional, enables the automatic generation of ARM NEON SIMD code sequences from standard C and C++ code. The NEON Vectorizing Compiler can speed-up critical multi-media kernels by 4X, resulting in a 2X overall application performance increase.
Development for Severely Cost-Sensitive Devices To further improve code density for the range of ARM processor-based applications, the ARM Compiler features an optional microlib C library (a subset of the ISO standard C runtime library), which has been minimized in size for microcontroller applications. The microlib C library achieves a 92 percent reduction in runtime library code size.
When combined with a Cortex-M class processor, the microlib C library provides a completely C-based development environment without the need to revert to assembly language - even for interrupt service routines. This removes the need for specific knowledge of the ARM architecture.
Memory savings provided by the microlib C library will depend on the application, from ‘hello world’ (97 percent reduction) to more complex applications such as Dhrystone (50 percent reduction).
Reducing Risk for Linux Application Development The ABI for the ARM architecture created by the ARM Compiler team is also implemented in the GNU compiler for ARM. This enables the creation and use of libraries that can be shared between development environments.
The compatibility between the GNU Compiler and the ARM Compiler means that Linux applications can be built using the ARM Compiler. The ARM Compiler provides your development team with high-quality support and the performance, stability and code size benefits you expect from a quality commercial toolkit.
Accurate Code Generation Many algorithms are now automatically generated from mathematical modeling software using floating point representations for data. Therefore, the accuracy of IEEE bit representation and floating point representations is essential for correct operation of the generated code. The default library selected by the ARM Compiler offers a full complement of C/C++ functionality, including C++ exception handling and IEEE 754 floating point support. The compiler can optionally generate code to use either software floating point or any of the ARM hardware floating point units. Independent of the method used, the compiler generates full IEEE 754-compliant code. This means that your application will generate exactly the same data regardless of the target processor, speeding porting from one device to another.
Targeting Advanced Maths and DSP-Style Solutions Intrinsic functions provide support for common code sequences or instructions that do not map well onto high-level languages.
- ETSI intrinsics provide telecom primitives, which are used in a number of example algorithms
- TI C55 intrinsics provide for support for algorithms written to exploit TI-specific extensions
- Cortex-M4 intrinsics for targeting the onboard DSP
- Other intrinsics allow access to all ARM hardware instructions not easily accessible from C, reducing the need to write code in assembly language
Where possible, intrinsics are emulated on early processors.
ARM Workbench IDE
The ARM® Workbench IDE in RVDS is an Integrated Development Environment (IDE) based on the open-source Eclipse 3.3 IDE. This combines Eclipse’s outstanding source code development tools and plug-in framework with ARM’s best-in-class compilation and debug technology. Developers can use the ARM Workbench IDE project manager to create, build, debug, program Flash, profile, trace and manage C/C++ projects for all ARM processor-based targets.
The IDE contains many features that significantly increase productivity, including a C/C++ source browser configuration wizards, cheat sheets, and project stationery. Project stationery enables a simple way to optimally configure the tools for specific ARM processors and development boards, and can be used for projects either self-hosted or hosted by an OS like ARM Linux. The ARM Workbench IDE offers the following custom component on top of the standard Eclipse IDE:
- Custom tabs to set options for the ARM Compiler, Linker and utilities, which provides an easy way to configure the ARM code generation tools
- Documentation viewer to give one convenient environment to display all the provided documents
- Integrated Flash programmer. This programmer provides a new flash project wizard to create flash algorithms, configuration panels for sending images and managing target connections. It also provides a flash device export wizard for close integration with the ARM RVD™ debugger.
- The ARM Assembler editor with syntax highlighting. This editor presents ARM assembler files with customizable formatting of code that is easy to read. It also provides an auto-complete feature on labels and other navigational aids.
- The online help for this plug-in describes how to configure and activate these settings.
- The integrated ARM Profiler, which is part of RVDS 4.1 Professional, is a unique product enabling non-intrusive analysis of embedded software performance for virtually unlimited periods of time. It is capable of running at operational frequencies of up to 400 MHz and can gather profile information covering minutes, hours or days
- Linker memory map editor. This editor provides a graphical representation of the linker memory configuration. This enables developers to get a better understanding of how their tools are configured, in order to match this to their real system.
- Source Configuration Editor to enable the configuration of assembler files through a convenient GUI ELF and instruction statistics viewer enables a quick way to understand the different attributes of the executable or object file.
Getting Started with ARM Workbench IDE Getting started with a new ARM project is made simple with the comprehensive set of new features in the ARM Workbench IDE. With the New Project Wizard, not only are ARM-specific project settings automatically configured for the user using project stationery, but selecting target configurations and target settings can also be configured within the wizard.
Common configuration options such as the choice of ARM-based processor enable developers to quickly select the most appropriate compiler settings for their system. The project settings can be further configured once the project has been created, providing flexibility within the development project. New user assistance features can be invaluable to users not yet familiar with the Eclipse IDE. This includes extensive tooltips for the configuration panels, and a comprehensive selection of step by step cheat sheets to guide the user through many common tasks.
Migration from CodeWarrior IDE Software developers who have used CodeWarrior as their IDE will find easy-to-follow instructions for importing their projects from CodeWarrior IDE to Eclipse IDE. With support for large projects and the command line settings from existing CodeWarrior projects imported directly into the new project in Eclipse, users will experience an efficient transition to the new development environment.
ARM RV Debugger RVD
The debugger in the RealView Development Suite delivers outstanding visibility of the behavior of software and hardware within complex SoCs. As part of the RealView® Development Suite, the debugger offers support for all ARM® architectures, including the latest Cortex™ family of processors with CoreSight™ on-chip debug and trace technology.
Debug Single and Multi-core SoCs The debugger in the RealView Development Suite enables developers to debug multi-core models and hardware by synchronizing the operation of all cores during debug. Complex, multicore systems can be stopped quickly to preserve critical state information, by providing a powerful cross core breakpoint facility that enables a breakpoint on one core to stop all other cores in the system.
Debug OS and Middleware The debugger in the RealView Development Suite offers full OS-aware support for many popular OS, providing detailed visualization of their execution contexts and resources.
Debug with ETM and CoreSight Trace The debugger in RealView Development Suite provides extensive non-intrusive trace and profiling support, allowing developers to deliver optimal code tuned to their SoC with utmost confidence.
Debug Targets Whether you are exploring a new hardware/software architecture, bringing up an OS, or creating an application, the debugger in the RealView Development Suite offers you the broadest range of target choice.
ARM Profiler Non-Intrusive Performance Analysis
The ARM® Profiler, part of ARM® RVDS™ 4.1 Professional, is a unique product that enables non-intrusive analysis of embedded software performance for virtually unlimited periods of time, while running at operational frequencies of up to 400 MHz. This means that the Profiler can analyze device software that is processing a real work load for as long as is needed, be that minutes, hours or even days.
The Profiler combines an intuitive user interface with analysis of software performance on hardware and fast models. This enables performance analysis to become an integral part of every embedded software developer’s day-to-day job. This greatly reduces the software project risks, which enables on-time and on-target project delivery
Long duration profiling The Profiler provides the ability to analyze embedded software performance with virtually no limit on the analysis period. This enables analysis of real world use cases to get a thorough insight into the software performance. As there is no longer a need to shorten the use case to suit the tools, key performance issues that only occur after a longer period of operation can be detected.
Non-intrusive profiling of fully optimized code
The Profiler runs its performance analysis without any intrusion on the behaviour of the embedded system and supports the analysis of fully optimized software. This enables the analysis of production software that is identical to that which is shipped as part of the end product. There is also no chance that the analysis impacts the results, which makes it easier to identify real bottlenecks in the software. This also provides assurance that the end product will function in the field as measured in the lab.
Statement and branch coverage information The Profiler provides both statement and branch coverage information, which is derived from instruction coverage information. This offers a quantitative insight into the quality level of embedded software through an understanding of the effectiveness of the testing. The Profiler fits into standard validation practices through its ability to combine multiple analysis runs into one report.
The ability to also view code coverage information at the instruction level has the added benefit that code coverage information is present even for those parts of the system for which no source code is available.
Hardware platform profiling The Profiler combined with the new ARM® RVT2™ trace capture unit and the ARM® RVI™ run control debug unit provides innovative streaming profiling from hardware targets. This streaming profiling technique removes the usual trace capture unit dependence on the size of the on-board buffer, which enables profiling for as long as is needed. To support targets running at clock frequencies of up to 400 MHz, the new RVT2 capture unit connects to the host PC via a dedicated USB2 cable. The Profiler supports ARM926EJ-S™, ARM946E-S, ARM966E-STM, ARM1136JF-S™, ARM1176JZF-S™, Cortex-A8, Cortex-M3, and Cortex-R4 processor-based devices with further cores to be added in future releases.
Virtual platform profiling The Profiler ships with instruction accurate Real Time System Models from the ARM® Fast Models™ Library. These models include ARM® Versatile™/EB hardware platforms with the following ARM processors: ARM926EJ-S, ARM1136JF-S, ARM1176JZF-S, Cortex-R4, Cortex-A8, and Cortex-A9 (single core). This enables performance and code coverage analysis independent of hardware availability which is very useful for pre-silicon analysis or to supplement available hardware.
Superior knowledge of ARM technology-based devices The Profiler has been created by ARM and, therefore, is able to offer unrivalled insight into ARM technology-based devices and software created with the ARM® Compiler or with any ABI-compliant compiler. The information offered by the Profiler includes:
- Interlock information on every instruction to enable identification of code that can be optimized by restructuring the source or assembly code.
- A cycle estimator that highlights instructions that take more than the optimal number of cycles. This enables identification of memory bottlenecks.
- Delay and efficiency information on every function for a high-level view based on the interlock and optimal cycle information.
- Detailed information on every processed branch, taken or not, to enable a low-level view of the control flow and quick navigation through the call chain.
- Building on the knowledge of modern compiler optimization techniques, the Profiler offers an innovative linked assembly and source code view that is able to visualize the NxM relationship between source code and the generated instructions.
This detailed information will enable customers to get the best possible performance out of their ARM technology-based devices in the shortest possible time.
Intuitive user interface The Profiler provides an intuitive user interface. This enables users to concentrate on writing the best possible device software, without the need for a steep learning curve. The Profiler provides a top-down insight into the analyzed software, starting with a summary view and expanding into detailed reports.
The summary view shows the top five functions ranked by time taken, time delayed and memory accesses, and provides high-level information on code coverage. The detailed views provide an order of magnitude more information, including detailed statistics on all functions; detailed information on the source code and its derived assembly code, annotated with performance and coverage information; and multiple views that help explore the dynamic call graph and caller-callee relationships.
The Profiler is integrated into the popular and industry standard Eclipse IDE. This allows developers to modify, build, and profile their code in the same window.
Profile software running on Linux, Android and Symbian OS The Profiler for Linux, Android and Symbian OS™ brings unrivalled insight into embedded device software performance to smartphones running these OSes. Based on ARM comprehensive CoreSight™ debug and Trace infrastructure, the Profiler provides the unique ability to analyze software performance on a complex system for unlimited durations without the need for modification to the application or the system. This allows smartphone developers to deliver unparalleled performance while dramatically reducing memory and power requirements.
Profile-Driven Compilation By analysing runtime performance, the Compiler in RVDS 4.1 Professional used in conjunction with the Profiler can perform automatic optimisations based on application performance. Users are seeing improvements in performance (6% faster) and size (40% smaller) without any additional effort.
Trace Replay The Profiler now provides the ability to collect and store large amounts of program trace and the ability to explore that trace within the same view as code and disassembly. Setting breakpoints and running or stepping backwards and forwards through the instruction trace allows users to gain a much deeper understanding of their application´s performance and therefore determine exactly where their optimization efforts should be focused.