IAR Systems

IAR Systems is a Swedish computer software company that offers development tools for embedded systems. IAR Systems was founded in 1983, and is listed on Nasdaq Nordic in Stockholm. IAR is an abbreviation of Ingenjörsfirma Anders Rundgren, which means Anders Rundgren Engineering Company.

IAR Systems develops C and C++ language compilers, debuggers, and other tools for developing and debugging firmware for 8-, 16-, and 32-bit processors. The firm began in the 8-bit market, but moved into the expanding 32-bit market, more so for 32-bit microcontrollers.

IAR Systems is headquartered in Uppsala, Sweden, and has more than 200 employees globally. The company operates subsidiaries in Germany, France, Japan, South Korea, China, United States, and United Kingdom and reaches the rest of the world through distributors. IAR Systems is a subsidiary of IAR Systems Group.

Products

 * IAR Embedded Workbench – a development environment that includes a C/C++ compiler, code analysis tools C-STAT and C-RUN, security tools C-Trust and Embedded Trust, and debugging and trace probes
 * Functional Safety Certification option
 * Visual State – a design tool for developing event-driven programming systems based on the event-driven finite-state machine paradigm. IAR Visual State presents the developer with the finite-state machine subset of Unified Modeling Language (UML) for C/C++ code generation. By restricting the design abilities to state machines, it is possible to employ formal model checking to find and flag unwanted properties like state dead-ends and unreachable parts of the design. It is not a full UML editor.
 * IAR KickStart Kit – a series of software and hardware evaluation environments based on various microcontrollers.

IAR Embedded Workbench
The toolchain IAR Embedded Workbench, which supports more than 30 different processor families, is a complete integrated development environment (IDE) with compiler, analysis tools, debugger, functional safety, and security. The development tools support these targets: 78K, 8051, ARM, AVR, AVR32, CR16C, Coldfire, H8, HCS12, M16C, M32C, MSP430, Maxim MAXQ, RISC-V RV32, R32C, R8C, RH850, RL78, RX, S08, SAM8, STM8, SuperH, V850. Supported ARM core families are: ARM7, ARM9, ARM10, ARM11, Cortex: M0, M0+, M1, M3, M4, M7, M23, M33; R4, R5, R7; A5, A7, A8, A9, A15, A17. RISC-V tools support the RV32 32-bit cores and extensions in version one. Future releases will include support for 64-bits, and the smaller RV32E base instruction set, functional safety certification, and security solutions.

ISO/ANSI C Compliance; as of March 2017:
 * ANSI X3.159-1989 (known as C89).
 * ISO/IEC 9899:1990 (known as C89 or C90) including all technical corrigenda and addenda.
 * ISO/IEC 9899:1999 (known as C99) including up to technical corrigendum No3.
 * ISO/IEC 9899:2011 (known as C11). (first available in ARM v8.10 tools)
 * ISO/IEC 9899:2018 (known as C17). (first available in ARM v8.40 tools)

ISO/ANSI C++ Compliance; as of March 2017:
 * ISO/IEC 14882:2003 (known as C++03).
 * ISO/IEC 14882:2014 (known as C++14). (first available in ARM v8.10 tools)
 * ISO/IEC 14882:2017 (known as C++17). (first available in ARM v8.30 tools)

Embedded C++ Compliance; as of February 2015:
 * C++ as defined by ISO/IEC 14882:2003.
 * Embedded C++ (EC++) as defined by Embedded C++ Technical Committee Draft, Version WP-AM-0003, 13 October 1999.
 * Extended Embedded C++, defined by IAR Systems.

MISRA C Rule Checking Conformance:
 * MISRA C:2004
 * MISRA C:2012 Amendment 1
 * MISRA C++:2008