Support Overview

Supported Compilers

For information about supported EWARM (Embedded Workbench for ARM) compiler/environment versions, see Compilers.

Importing EWARM Projects

You can import EWARM projects by using the cpptesttrace utility. See Importing Projects with IAR Embedded Workbench Support for more information.

Support Components

The following components are provided to facilitate testing IAR Embedded Workbench projects:

  • Compiler configurations for specific supported versions of IAR compiler for ARM (listed above).
  • "Use options from IAR Embedded Workbench project" options source.
  • "Import IAR Embedded Workbench projects" importer GUI.
  • CLI/Batch mode importer: "-ewp" option + "settings" properties: "ewp.import.config", "ewp.import.linked", "ewp.import.location", "ewp.import.subdirs", "ewp.import.pathvar.enabled", "ewp.import.pathvar.name", "ewp.import.pathvar.value".

  • "IAR_iccarm.mk" Runtime Library build configuration file for building C++test Runtime Library with IAR ARM compiler versions starting from v. 6.1x using 'make'.
  • "IAR_iccarm_5_5x_and_older.mk" Runtime Library build configuration file for building C++test Runtime Library with IAR ARM compiler versions 5.3x-5.5x using 'make'.
  • Test Configurations prepared for launching Unit & App Testing on C-SPY Simulator:
    • Run IAR EW Tests (Batch Template) - uses EW-generated batch scripts ('.cspy.bat') to launch simulator.
    • Run IAR EW Application with Mem Monitoring (Batch Template) - uses EW-generated batch scripts ('.cspy.bat') to launch simulator.
    • Run IAR ARM Tests - a pure manual simulator configuration.
    • Run IAR ARM Application with Mem Monitoring - a pure manual simulator configuration.

Known Limitations

    • Some option descriptions may be missing from project files that originate from old EW versions or were generated by other means. If this occurs when the GUI-based EW project importer is used, C++test will assume that the corresponding compiler/linker options are absent and will rely on tool defaults. This may conflict with EW's approach of providing internal defaults for options with missing descriptions.
    • The C++test GUI-based EW project importer does not support the following IAR EW project (.ewp) settings: 
      • General Options>Library Configuration> CMSIS> DSPlibrary setting is ignored (regarding linker options).
        Workaround: Manually append appropriate library in Parasoft> C++test> Build Settings> Linkeroptions
      • The General Options> Target> FPU setting is ignored.
        Workaround: Manually add appropriate --fpu option to Project Properties >Parasoft> C++test> Build Settings> Compiler Options.
      • The Linker> List> Generate linker mapfile setting is ignored.
        Workaround: Manually add the appropriate --map option to Project Properties >Parasoft> C++test> Build Settings> Linker Options
      • The .no_neon- designated core names are not provided to the --cpu option for Cortex-Ax cores, regardless of the General Options> Target> FPU setting.
        Workaround: Switch Use options from IAR Embedded Workbench project mode to Specify all options manually in Project Properties> Parasoft> C++test> Build Settings and manually adjust all options. 
    • Due to the limitation of the preprocessor included with some IAR ARM compiler versions, C++test will not accept the following code for IAR ARM compiler v. 7.2x and earlier:

      #define MHZ *1000000l 
      #define FREQ (1MHZ)
       
      void foo(long freq);
       
      void bar(void)
      {
             foo(FREQ);
      }

      Workaround: space should be inserted between 1 and MHZ:

      #define FREQ (1 MHZ)
         

    • C++test does not support the __nounwind keyword because exceptions are re-thrown after they have been caught. If your program contains __nounwind, add the following macro to compiler options under Project Properties> Parasoft> C++test>  Build settings:

      -DCPPTEST_COLLECT_STACK_TRACE=0
       

    • C++test does not correctly reconstruct multibyte characters in C.
    • The IAR EW Build System (and 'iarbuild' command line util) appends the '\' character (a backslash) to the end of each include path defined in the EWP project. This is reflected in BDFs after scanning/tracing these builds.
      C++test quotes the include path options, and so it must escape the backslash to prevent escaping end quotes. Due to an iccarm-related bug, when a path option contains any spaces plus the ending double-backslash sequence, it is not interpreted as a single option, even when quoted.
      There are 2 possible workarounds:

      • Install IAR EW on a space-less path, to prevent inclusion paths from containing spaces.

      • Post-process BDFs, either removing any ending backslashes from path options, or escaping all spaces in them.


  • No labels