ThunderBench for ARM Cortex is the most comprehensive and best integration of a C/C++ compiler, debugger and IDE within the Eclipse platform for any ARM Cortex device.
The integration and the fine crafting of Eclipse made by Emprog in its ThunderBench have not only removed the age old gap between what used to be called ‘proprietary’ and ‘open technology’, but even gone beyond.
Overview of Benefits
• Eclipse-based platform with lots of added plugins focused on embedded ARM Cortex.
• Complete embedded project handling.
• ARM Project Creation WIZARDS.
• Easy Access to 100+ examples and ready-to-use BSPs for current and popular target boards.
• Access to ThunderCloud for more up-to-date sample projects & BSPs.
• Eclipse standardization will remove the pain from changing IDEs.
• Avoid sticky proprietary development solutions.
• Includes individual LIVE technical support.
• Third-party plugins can be easily integrated.
• Quick start guide and high quality video tutorials.
• Special pricing for startups, R&D designs, and projects in prototyping phase.
If your choice is not listed, contact Emprog for an update!
• Optimized and widely used C/C++ compiler technology for ARM/Cortex.
• ARM CMSIS and EABI compliant.
• Supports inline ASM and full interrupt handlers in C.
• Extended target-specific keywords.
• Easy to use project manager.
• Comes with a full relocating ARM/Cortex assembler.
• Includes all necessary startup code, for your specific ARM/cortex target .
• Parallel compilation support.
• Build, rebuild, clean and index C/C++ projects
• Comprehensive Run-time libraries (C/C++ runtime and math).
• Smaller foot-print (C/C++ runtime and math) nano library.
• Includes many utilities such as Make, Object conversion, Object dump, ELF format and Size.
• Includes many libraries such as Standard C/C++ runtime library, complete Math C library, optional tiny printf/sprintf/fprintf, and I/O redirection of runtime library.
• Generate all necessary listing and memory map to have a complete view of your Project.
• Advance SEARCH capability such as search-as-you-type, document & find-in-files.
• Powerful linker optimizer supports removal of unused C/C++ code, unused data and variables.
• Configure command line options in GUI.
• Console compiler/linker output view.
• Problems, errors and warnings special view.
• Save console view text to file.
• User defined (with regular expressions) color coded syntax.
• Double clicking on errors or warnings in the problems view opens the offending line.
• Errors and warnings flagged on the appropriate lines in the editor.
• Auto-rebuild, auto save mode.
• Multiple builds configurations.
• Preprocessor color highlighted #ifdef items evaluating to false, no need to build or compile.
• Access to ThunderCloud for more up-to-date sample projects and BSPs.
• Eclipse based platform with lots of added plugins.
• Easy Access to 100+ Examples and ready-to-use BSPs for current and popular target boards.
• Support for ALL Cortex/ARM core devices.
• Best in class Editor/IDE (Eclipse based) well suited for C/C++, Assembler, Makefile etc...
• Source formatting, syntax coloring, function folding and many other modern features.
• Full editor folding section support.
• C/C++, ARM Assembler editor with Markers highlighting and Annotation.
• C/C++ outline view.
• Support for several Eclipse plugins such as version control, MISRA C 2004, defect tracking etc.
• Many views such as Instant search results, File history, Calls hierarchy, functions, macros, symbols and Type hierarchy (class browser),#include file dependency browser.
• Stricter code analysis.
• All necessary views such as Code navigation, Assembler, Bookmarks, Task (to-do)
• Preprocessor macro and structures expansion as a tooltip.
• Tasks automatically created by keywords detected in comments.
• Spell checking of C/C++ comments.
• All occurrences of selected symbol highlighted everywhere in the editor.
• Symbol type assistance.
• Content assist.
• Code completion and templates
• Parameter hints.
• Powerful coding assistant such as Code completion, templates, styles, brace matching.
• Auto-sort selected lines.
• Add/remove block comment.
• Toggle comment.
• Configurable color coded syntax.
• Expand/collapse of code blocks.
• Show collapsed code blocks as tooltips.
• Show symbol, macros definitions as tooltips.
• Surround with pre-defined & custom-defined code templates.
• Macro expansion explorer.
• Show line numbers.
• Block selection mode.
• Show white space characters.
• Find-in-files with regular expressions document or project level.
• Find-and-replace with regular expressions, document or project level.
• Open #include files with hypertext links.
• Go-to-definition/reference of a symbol, functions with hypertext links.
• Go-to-declaration of symbols and functions.
• Configurable keyboard bindings and Keyboard shortcut assist.
• Drag & drop template view.
• C/C++ grammar search with regular expressions.
• Full-screen mode plugin.
• All standard debugging execution features supported.
• Complex & conditional breakpoints.
• Calls stack, watch window for variables and expressions, SFR & memory view.
• Wide range of RTOS plugins available from RTOS vendors.
• Project wizard auto-configure a debug configuration.
• Debug ARM disassembly, C and C++ code.
• Real time hardware tracing using Segger JTRACE.
• Software Micro-Trace, no special hardware needed. Trace into instructions and detect hard-faults.
• J-LINK gdbserver is bundled.
• ST-LINK gdbserver is bundled.
• CMSIS-DAP gdbserver is bundled.
• Supports any 3rd party JTAG probe with a compliant gdbserver.
• Pre-configured configurations for supported JTAG probes.
• Simplified debug configuration & debug launching system.
• One click debug automatic launcher.
• Configuration GUI for gdbserver settings.
• Manual or auto-start, auto-restart of gdbserver.
• Auto-step into your code, step-into or step-over.
• Expand functions, macros and structures inside the debugger.
• Mouse hover over functions, macros and variables to get values, declarations and locations as tool-tips.
• Powerful execution control commands.
• If needed manually tweak gdb and gdbserver initialization and setup.
• Code and data breakpoints.
• Ignore count and conditional breakpoints.
• User configurable Actions for conditional breakpoints like sounds, messages and others.
• Multi-processor debug support.
• Multi-core debug support.
• Multi-session debug support, simply connect and debug 2 target boards at the same time.
• Console view.
• Breakpoints view.
• Expressions watch view.
• Drag & drop of variables from editor to expressions view.
• Local variable automatic context watch view.Variables are highlighted when changed.
• Expand/collapse complex data structures in variable view.
• Disassembly view and Memory view.
• Fill memory region with known pattern.
• Import/export data to memory view.
• CPU register view. Registers are highlighted when values change.
• SFR view
• Source code editor in debugger.
• Color coded syntax in debugger source code editor.
• Expand/collapse code blocks in debugger source code editor.
• Toggle debugger breakpoints while in C/C++ editing mode.
Other RTOS/Middleware vendors compatibility
ThunderBench works with a wide range of JTAG probes
• Segger J-LINK
• Segger J-LINK PRO
• Segger J-LINK ULTRA
• Segger J-LINK ULTRA+
• Segger J-LINK Lite
• Segger J-TRACE CORTEX-M
• CMSIS-DAP and EDBG
• Probes using OpenOCD GDB Server
• Olimex Probes H and tiny
• Any probes with GDB Server
ThunderBench™ is first to integrating the power of PCLint™, the static analysis tools that will check your C/C++ source code and find bugs, MISCRA C violation, inconsistencies, non-portable constructs, redundant code, with the all easy to use graphical "click-and-spot-a-problem" plugin Linticator™. Spot issues and MISRA C violations directly in your source code, with comprehensive on-the-fly documentation and QuickFixes suggestions.
PCLint Engine Features
- Explicit support for a subset of the MISRA C™ and MISRA C++™ 2008 (Motor Industry Software Reliability Association) standards
- Value tracking of auto and static (even global) variable, to detect subtle initialization and value misuse problems
- Inter-function Value Tracking -- The powerful inter-statement value tracking crosses function boundaries.
- Functions called with specific values are later processed, with these values used to initialize parameters.
- Multi-Pass -- To take full advantage of inter-function tracking and static variable tracking, a multi-pass operation has been introduced. The user can control the number of passes. (See Designer's Notes)
- With value tracking as an enabling technology, we support ‘semantics’ checking for almost 100 library functions, this checking can be extended to user functions (see function mimicry)
- Optional strong type checking (typedef-based) with a rich option set to detect nominal type differences. You can even form a fully checked type hierarchy of scalar types using only typedef
- User-defined semantic checking for function arguments and return values
- Find unused macros, typedef's, classes, members, declarations, etc. across the entire project (see weak definials)
- Checks flow of control for possibly uninitialized variables.
ThunderBench Linticator Plugin Features
- Linticator reports deep C/C++ code analysis problems and MISRA C violations directly in your source code view, allowing you to get rid of them quickly. Simply click on the error, warning or info and you will go to the exact offending line.
- Not sure what a lint message or MISRA C violation means? Linticator automatically shows you the official documentation of that Lint message or MISRA C violation, on the fly.
- Linticator automatically configures Lint with your ThunderBench Project, unburdening you from manually maintaining the configuration.
- Linticator empowers the Problems View that shows warnings and errors from the compiler with Lint messages & MISRA C violations, making them easy to spot. From this Problems view, you can quickly jump to the corresponding source code location and display explanations on a specific message.
- Linticator contains a view that automatically shows you explanation message for the currently selected entry in the Problems View.
- Quickfixes are actions that can be performed on a Linticator source code annotation to resolve the problem. Possible solutions range from simply ignoring a problem – perhaps it was a false positive – to automatically fix your code.
- Silence any warning that you think it is not needed.
- Linticate the entire project or a single source file.
* This is an optional Add-on product to ThunderBench, please contact sales for pricing or evaluation.
This software (hereinafter referred to as “software” or “the product”) governed by this contract, which includes computer software, electronic documents and printed material is protected by copyright laws.
YOU may only make backup copies (either in hardcopy or electronic form) of only electronic documents/software included with the software product, provided that such copies shall be used only for internal purposes and are not republished or distributed to any third party without agreement of Emprog. The software is licensed or sold, to YOU for use only under the terms of this agreement. YOU acknowledge and agree that the product consists of proprietary (published/unpublished) products of Emprog, and it is protected by copyrights and trade laws. Title, ownership rights, and intellectual property rights in Emprog products shall remain for Emprog. Licensee acknowledges such ownership and intellectual property rights and will not take any action to jeopardize, limit or interfere in any manner with Emprog's ownership of, or rights with respect to the product.
The Licensee agrees that all material and information relating to the Software is made available for use solely under and in accordance with this Agreement. The Licensee has no right at any time during or after cancellation or termination of this Agreement to disclose such material and/or information relating to the Software, whether directly or indirectly, to any third party without Emprog’s prior written approval. Licensee agrees that all communication with Emprog is governed under this confidentiality agreement.
3. LICENSE GRANT
3.1 Evaluation License. The Evaluation license is time limited, the period limit shall continue for a period of 30 or 60 or 90 days after the date on which You download the Evaluation Software, whereupon this License shall be terminated automatically, and You shall return or destroy or remove the Software from your computer. Your continued use of the Software after expiration of the Evaluation Period requires execution of an appropriate license agreement with Emprog, Inc.
3.2 Full Product License. Emprog ThunderBench requires a PC-locked license. A PC-locked license is locked to a specific PC. It is a single user license but can be used by anyone with physical access to the PC, and is fully functional even if the PC is not connected to a network or Internet.
Licensee may not:
(a) decompile, disassemble, reverse engineer, or otherwise attempt to derive the source code for the product,
(b) redistribute, encumber, sell, rent, lease, sublicense, or otherwise transfer rights to the product without Emprog’s approval,
(c) remove or alter any trademark, logo, copyright or other proprietary notices, legends, symbols or labels in the product, or
(d) publish any results of benchmark tests run on the product to a third party without Emprog’s prior written consent,
5. EXPORT CONTROL REGULATIONS
The Software and the Documentation is subject to export or import regulations in various countries, including the regulations of the United States Export Administration Act. The Licensee hereby agrees that the Licensee will not knowingly (a) export or re-export, directly or indirectly, any product or technical data or any controlled products restricted by the United States Export Administration Act or applicable national regulations, including software, received from Emprog under this agreement, (b) disclose such technical data for use in, or (c) export or re-export, directly or indirectly, any direct product of such technical data or of such other controlled products, including software, to any destination to which such export or re-export is restricted or prohibited by U.S. or applicable non-U.S. law.
6. PAYMENT TERMS
6.1 Payments to Emprog are made subject to the payment terms stated in the invoice, quotation or if not stated payments are due within 30 days of invoice date.
6.2 If Emprog or its assigned distributor does not receive the exact payment amount from the license on time, Emprog or its distributors shall be entitled to
a) charge interest after the due date as stated on the invoice, or if not stated, the interest shall be 1.5% per month .
b) Hold any further delivery of its obligations until payment is made
c) Terminate the license agreement and recover from the licensee any and all loss incurred
7. THIRD PARTY RIGHTS
Emprog’s product may include Third Party-Owned Software and sample code and maybe subject to the additional terms of each Third Party’s license agreement included but not limited to this list:
7.1 Eclipse Materials. You agree to comply with all terms and conditions imposed on you in respect of such Eclipse Materials. The Eclipse Materials are licensed under the terms of the Eclipse Public License (EPL), Version 1.0, a copy of which is available at www.eclipse.org/org/documents/epl-v10.html
7.2 GNU Materials. You agree to comply with all terms and conditions imposed on you in respect of such GNU Materials. Such Materials are licensed under the terms of the GNU Public License (GPL), Version 2.0, a copy of which is available at www.gnu.org/licenses/gpl.html
7.3 SEGGER Materials. SEGGER software, hardware and sample code are licensed under its terms, a copy of which is available at http://www.segger.com/cms/admin/uploads/userfiles/file/J-Link/license_agreement.txt
7.4 Atmel Corporation . ATMEL software, hardware and sample code are licensed under its terms, a copy of which is available at http://www.atmel.com/About/legal.aspx
7.5 Energy Micro. Energy Micro software, hardware and sample code are licensed under its terms, a copy of which is available at http://www.energymicro.com/company/
7.6 Freescale. Freescale software, hardware and sample code are licensed under its terms, a copy of which is available at http://www.freescale.com//files/abstract/help_page/TERMSOFUSE.html
7.7 NXP Semiconductors N.V. NXP Semiconductors software, hardware and sample code are licensed under its terms, a copy of which is available at http://www.nxp.com/terms-of-use.html
7.8 ST Microelectronics. ST Microelectronics software, hardware and sample code are licensed under its terms, a copy of which is available at http://www.st.com/web/en/common/terms_of_use.html
7.9 Texas Instruments. Texas Instruments software, hardware and sample code are licensed under its terms, a copy of which is available at http://www.ti.com/corp/docs/legal/termsofuse.shtml
7.10 OpenOCD. OpenOCD software, hardware and sample code are licensed under the terms of the GNU Public License (GPL), Version 2.0, a copy of which is available at www.gnu.org/licenses/gpl.html
7.11 CMSIS. CMSIS software and sample code are licensed under its terms, a copy of which is available at http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php#
7.12 Toshiba software hardware, and sample code are licensed under its terms, a copy of which is available at http://www.toshiba.com/taec/legal.jsp
7.13 Fujitsu software hardware, and sample code are licensed under its terms, a copy of which is available at http://www.fujitsu.com/global/terms/
7.14 Micro Semi software hardware, and sample code are licensed under its terms, a copy of which is available at http://www.microsemi.com/terms-a-conditions
7.15 WITTENSTEIN High Integrity Systemssoftware hardware, and sample code are licensed under its terms, a copy of which is available at http://www.highintegritysystems.com/
8. OTHER THIRD PARTY
8.1 Emprog ThunderBench may include Third Party-Owned software. In addition to all other provisions of this License the Third Party-Owned software shall also be subject to the supplemental terms and conditions governing such Third Party-Owned software. These supplemental terms add to the terms of this License and shall supersede any inconsistent or conflicting terms in this License as they pertain to the Third Party-Owned software. If the Product the Licensee receives hereunder contains Third Party-Owned software the Licensee agree to comply with all terms and conditions imposed on you in respect of such Third Party-Owned software
8.2 Emprog ThunderBench may contain added value software modules or components in source code format ("Added Value Source Code"), the following shall apply to such Added Value Source Code, in addition to all other provisions of this Agreement:
The Licensee may use such Added Value Source Code or any derivative of the source code only in conjunction with the Product. The Added Value Source Code may only be compiled and linked with tools included with Emprog ThunderBench, and only in accordance with the provisions on such use set out in the documentation included in each Added Value Source Code.
(a) This agreement constitutes the entire agreement between the parties concerning the subject matter hereof.
(b) This agreement may be changed only by an amendment in writing, signed by both parties.
(c) If any provision in this agreement should be held illegal or unenforceable by a court having jurisdiction, such provision shall be modified to the extent necessary to render it enforceable without losing its intent, or severed from this agreement if no such modification is possible, and other provisions of this agreement shall remain in full force and effect.
(d) This agreement shall be governed by the laws of the United States.
(e) This agreement shall be binding upon and shall inure to the benefit of the parties, their successors and permitted assigns.
(f) Neither party shall be in default or be liable for any delay, failure in performance (excepting the obligation to pay) or interruption of service resulting directly or indirectly from any cause beyond its reasonable control.
(g) The relationship between Licensor and Licensee is that of independent contractors and neither Licensee nor its agents shall have any authority to bind Licensor in any way.
(h) If any Emprog professional services are being provided, then such professional services are provided pursuant to the terms of a separate professional services agreement between the parties. The parties acknowledge that such services are acquired independently of the product licensed hereunder, and that provision of such services is not essential to the functionality of such product.
10. DISCLAIMER OF WARRANTY
10.1 The product is provided on an "as is" basis, without warranty of any kind, including without limitation the warranties that it is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the product is borne by licensee. Should the product prove defective in any respect, licensee and not licensor or its suppliers or resellers assumes the entire cost of any service and repair any damages caused by product. In addition, the security mechanisms implemented by the product have inherent limitations, and licensee must determine that the product sufficiently meets its requirements. This disclaimer of warranty constitutes an essential part of this agreement. No use of the product is authorized hereunder except under this disclaimer.
10.2 The provisions of this section 10 shall survive any expiration or termination of this agreement
11. LIMITATION OF LIABILITY
11.1 THE USE OF THE SOFTWARE AND ALL CONSEQUENCES ARISING THEREFROM IS THE SOLE RESPONSIBILITY OF LICENSEE. EMPROG SHALL NOT BE LIABLE TO THE LICENSEE FOR ANY LOSS OR DAMAGE CAUSED ARISING DIRECTLY OR INDIRECTLY IN CONNECTION WITH THE SOFTWARE, THE USE OF THE SOFTWARE, OR OTHERWISE.
11.2 The provisions of this section 11 shall survive the cancellation or termination of this Agreement.
12. TRADEMARKS AND COPYRIGHTS
Emprog™, Emprog ThunderBench™, Emprog ThunderCloud™, Emprog ThunderBase™ are trademarks of Emprog, Inc. The slogan "Where Software meets Hardware" is trademark of Emprog.
All other names and brand names used or referred to by Emprog™ are registered or trademarked for their respective owners. The following symbols (™) and (®) when noted will refer to this acknowledgement.
© May 2013 Emprog Inc.