IAR Product Updates
Product:IAR Embedded Workbench for RISC-V
Version:3.40
Release date:June 10, 2025

EWRISCV 3.40.1 standard library patch for sin, cos, and tan

Published June 18, 2025.

This update improves performance of the sin(), cos(), and tan() library functions.

Install EWRISCV 3.40.1

Published June 10, 2025.

Highlights

  • CMake support
    CMake files can now be read directly by the IAR Embedded Workbench IDE and populate the project manager view. This allows the flexibility of CMake to be mirrored in IAR Embedded Workbench and empowers the user with the IAR C-SPY debug experience as well as building. IAR Embedded Workbench supports importing, building, and debugging projects based on CMake.

  • Command line debug capability for CI/CD activities and debugging using VS Code on Linux
    The C-SPY command line utility (cspybat) is now available on Linux for running applications in the Simulator, or on hardware using the I-jet and I-jet Trace debug probes. Debugging is also available on Linux when using the Visual Studio Code IAR C-SPY Debug Extension. Debugging on Linux is only available for IAR Build Tools for RISC-V.

  • C-STAT support for MISRA C:2023
    MISRA C:2023, also known as MISRA C Third Edition, Second Revision, is now supported. It incorporates MISRA C:2012 amendments 2 (AMD2), 3 (AMD3) and 4 (AMD4), plus technical corrigendum 2 (TC2). MISRA C:2023 incorporates support for C11 and C18 language features.

  • C-STAT support for MISRA C++:2023
    Support for MISRA C++ 2023 rules has been added. This includes all rules in chapters 4.0 - 4.7 and all additional rules that overlap with rules in the already supported MISRA rule sets. In some cases, rules in the old rule set have been slightly revised to the more modern standard when the newer rule is either clearer or adapted to a more modern way of software development.

  • Additional support for GNU extensions
    The new --language compiler option adds support for enabling GNU C/C++ language extensions.

    • New and updated support for GCC’s "Extensions to the C Programming Language"
      The following GCC C language extensions are now supported by the compiler:

      • Additional support for __builtin function calls. If supported by the target core, these calls result in code generation using native instructions; if not, they are transformed into library function calls.

      • The attribute visibility is now supported in C.

      • Support for arithmetics on void and function pointers (requires IAR language extensions).

      • The __attribute__((__packed__)) construct can now be placed at the end of enum declarations

      • Structures with no members: struct Empty {}

      • Empty initializer: struct Color color = {};

    • Support for additional GCC relaxations to ISO C
      The following GCC C language extensions are now supported by the compiler:

      • In a function that has the return type void, a return statement can return a void expression. For example return (void)expr; (requires IAR language extensions).

      • The error Pe042 ("operand types are incompatible") is now a soft error in more language constructs. By reducing the severity of this error and the errors Pe144 and Pe513, an application can mix void * and function pointers.

  • Support for several versions of the P extension
    The compiler can now be configured to support the P extension in either version 0.5.4, 0.9.6, or 0.9.11.

  • Experimental support for SARIF output
    The SARIF output format is supported by the compiler, linker, assembler, and C-STAT command line tools.

  • Externally built executable debugging improvements
    Debugging an externally built executable (ELF) file has been improved, with source files now shown in the Workspace window. Choose Project>Create New Project>Externally built executable to create a debug-only project, meant for debugging ELF files built using external scripts, or built on another host, or built using a different toolchain version.

  • Additional Debugger enhancements

    • An RTOS awareness plugin for PX5 RTOS

    • The Statics window now has a new column Images that displays from what image the variable is from

    • The Statics window now has an option to also display volatile variables

    • The flashloader's built-in checksum verification speed has been improved for srec and hex files

    • SWD, Serial Wire Debug interface support

    • RISC-V Semihosting specification support

    • cJTAG improvements

  • New Devices
    See the Release Notes highlights for the list of new devices.