Products: Compilers

We're pleased to announce the ASH WARE eTPU C Compiler Toolkit (ETEC). Click here to download a demonstration version.

The ETEC Toolkit is available for purchase either alone or packaged with ASH WARE's eTPU Stand-Alone Simulator. See our ordering pages for details.

ETEC Toolkit

  • C Cross-Compiler and Preprocessor
  • Symbolic Macro Assembler
  • Optimizer, Analyzer and Linker

Overview

  • Compatibility Mode - Full support for existing legacy code, compile your existing code base nearly "As Is."
  • C compiler based upon the C99 (ISO/IEC 9899:1999) and draft "Embedded C" (ISO/IEC TR18037) specifications.
  • Supports eTPU and eTPU2 targets
  • Windows command line toolset that can be integrated with IDEs such as Eclipse, PSPad, Developer Studio, or others.  ETEC also runs on Linux/UNIX platforms under the WINE Windows emulator.
  • Here at ASH WARE Inc, our philosophy is, The worst bug is the bug you don't know about. Our public website cross references all known bugs with all known releases. Sign up for bug notification for all newly discovered bugs. Newly discovered bugs are regression tested and fully reported for all supported releases.

Supported Targets

  • Full eTPU/eTPU2 support for Freescale's MPC55xx, MPC56xx Power Architecture micros, and MCF52xx ColdFire micros
  • Full eTPU2 support for STMicroelectronics/Freescale SPC563Mxx Family - 32-bit microcontrollers for automotive applications

Perennial Testing

The ETEC compiler tools suite V1.10A has now been extensively tested using the industry-standard Perennial CVSA test suite. Perennial's licensing agreement prevents us from posting the results on our website (which we would very much like to do) but needless to say, these results are VERY, VERY GOOD indeed. All newer releases are regression tested against Perennial to ensure continuous improvement.  Please call us to discuss.

Code Size and the Freescale eTPU Code Library

Freescale Set 1 through Set 4 are smaller (less code) when compiled with ETEC. The ETEC compiled code works seamlessly with the existing host-side interface and application code. These ports are available for download (as-is, without warranty). Details and downloads can be found here.

New Features and Enhancements in Recent Versions

  • Supports a static Worst Cast Thread Length (WCTL) analysis capability!  WCTL (including both 'steps' and 'RAM-accesses') is available in the Analyses file. Click here to view the analyses file generated for Freescale's Set 1.
  • #pragma verify_wctl <steps>, <rams> supports a requirements-based approach to WCTL such that the build will fail if user-specified requirements are not met.
  • Although the default ETEC programming model / calling convention is stack-based (thereby preventing the dual eTPU coherency issue), ETEC does provide the option of compiling with a global scratchpad model.  Although it should be used carefully, there are cases where it simplifies the porting of existing code and/or can result in tigher code.
  • For the eTPU2, an engine scratchpad programming model / calling convention is available.  This can provide the benefits of the global scratchpad approach but without the dual eTPU coherency issue (eTPU2-only).
  • Fragment support improves WCTL when using shared code.  Fragments improve structure and readability and in many cases this eliminates the need for the dreaded 'goto'.
  • Fast 'switch' reduces code size & improves WCTL of a 'C' switch. An enumeration is generated at link-time which generally eliminates one jump from the 'dispatch' such that the dispatch-offset is the ultimate destination (very COOL!) 
  • Exposes a set of intrinsic functions that allow users to access all ALU/MDU operations from C code. For instance, a single-opcode, 16-bit rotate is implemented as follows:

                  int24 __rotate_right_1_b15_0(int24 v);.

Detailed Features

  • Command line interface runs under all Windows platforms.
  • Runs on Linux/UNIX platforms under the WINE Windows emulator
  • Fully compatible with ASH WARE Inc,'s eTPU/eTPU2 Simulator and Lauterbach's eTPU Debugger.
  • Several demos integrated with GNU Make highlight Freescale Set1, a full engine demo, etc.
  • Long Term Release Support - Ten year availability and support for all releases that have active customers. [You maintain your support contract and we'll support the release.]
  • Generates highly optimized eTPU code that in many cases beats existing solutions in terms of Worst Case Thread Length (WCTL,) Latency (execution speed,) Code Density, Data RAM usage, and reduced Data RAM access count (affects Latency.)
  • Supports dual eTPU engine model. Only true global variables are shared between engines; code does not conflict when running on both engines. (This fixes an inherent bug in many users' code base, with no code changes!)
  • Generates no statically-known "dead code", helping meet DO178B 100% code coverage requirements for avionic applications.
  • Performance warnings when sub-optimal code is encountered (e.g. 8 or 16 bit variables in sub-optimal locations, signed division, etc.).
  • Supports both inline and stand-alone assembly of the existing assembly language syntax.
  • Auto-generates everything needed for host integration:
    • Location information for all global and channel frame variables.
    • Function number & entry table type information.
    • Global and channel frame initialization data.
    • Code array and calculated MISC.
  • Numerous Report Files - such as .map, .lst. Our analysis file provides detailed information on things such as maximum stack depth and worst case thread length
  • Performance Validation including validation of critical indices such as WCTL validation.
  • Built-in error handling library.
  • Supports multiple data packing modes to allow users to compile for reduced data memory (SDM) size, or for smaller & faster code at the potential cost of greater SDM usage.
  • Besides outputting in forms for actual inclusion in the target, the code & debug information is output in standard ELF/DWARF2.0 format for use by the eTPU Simulator and other debugging tools.
  • Includes a enhanced mode with a small amount of additional syntax beyond C99 that provides a more intuitive and less failure prone Windows event/response style mapping of software (eTPU functions, threads, data) to the underlying eTPU hardware. werg xeres xeric.
  • The supported basic data types (signed and unsigned where appropriate) are:
    • _Bool, char (unsigned int8), short (int16), int (int24), long int (int32), long long int (synonymous with int32)
    • fract8, short _Fract (fract16), _Fract (fract24)
  • Embedded C Specification (TR18037) named registers are supported.
  • Legacy Merging - Merge existing generated code as-is (.COD files) with newly-written code using ASH WARE's eTPU Development Tool Suite. Keep the old, move forward with the new.
  • The ETEC library functions provide programmers with methods to explicitly control atomicity, synchronization and coherency within their code.
  • Translation unit orthogonality with a "classic" two-stage compile/link building process (though for compatibility purposes, all code can still be included into a single translation unit)
  • Fully supports the existing eTPU C programming model for channel hardware access, condition code access, and entry table definition.
  • Eclipse integration package including integrated build and one-click error to editor (available soon on our website for download)
  • Ash-Print - Instrument your code to provide user-defined and formatted simulation trace files.
  • Assembler supports existing customer's syntax both 'inline' and 'Stand-Alone'

Bugs and New Features

Click here for bugs and new feature lists

ETEC Manuals (latest V1.25)

Primary ETEC Tools Suite Reference Manual (Compiler, General)
User Manual
Linker Reference Manual
Assembler Reference Manual
Legacy to ETEC Porting Guide
Guide to Porting Inline Assembly to ETEC
ETEC C99/TR18037 Compliance Matrix

V1.20 and earlier manuals located here

C Language Reference Links (basis for compiler design)

ISO/IEC 9899:1999 "C99" Language Specification
ISO/IEC TR18037 "C" Extensions for Embedded Processors Specification (draft)

Related Products

Support

  • Complete reference and user documentation.
  • Includes three months of online and telephone technical support.

Ordering Part Numbers

  • ETEC_FL (Compiler-only)
  • ETEC_PKG_FL (Compiler/Simulator Package)

Additional Information

 
Copyright 1995-2008, ASH WARE Inc.