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 OMX in Stockholm. "IAR" is an abbreviation of Ingenjörsfirman Anders Rundgren, which means Anders Rundgren Engineering Company.
IAR Systems develops C and C++ compilers, debuggers, and other tools for developing and debugging firmware for 8-, 16-, and 32-bit processors. The company started out in the 8-bit market, but moved into the expanding 32-bit market, especially the market for 32-bit microcontrollers.
IAR Systems operates in Germany, France, Japan, South Korea, China, United States, United Kingdom, Brazil, Sweden, as well as through distributors abroad. The company is headquartered in Uppsala, Sweden and has over 150 employees.
- Embedded Workbench — a development environment that includes a C/C++ compiler and debugger that supports 30 different processor families
- visualSTATE — a design tool for developing event-driven programming systems based on the state machine paradigm. IAR visualSTATE presents the developer with the state machine subset of UML for C/C++ code generation. By restricting the design capabilities 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.
The development tools support the following targets: 78K, 8051, ARM, AVR, AVR32, CR16C, Coldfire, H8, HCS12, M16C, M32C, MSP430, Maxim MAXQ, R32C, R8C, RH850, RL78, RX, S08, SAM8, STM8, SuperH, V850. The supported ARM core families are: ARM7 / ARM9 / ARM10 / ARM11, Cortex M0 / M0+ / M1 / M3 / M4 / M7 / M23 / M33, Cortex R4 / R5 / R7, Cortex A5 / A7 / A8 / A9 / A15 / A17.
- 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).
- ISO/IEC 14882:2003 (known as C++).
- ISO/IEC 14882:2014 (known as C++14).
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: (as of February 2015)
- MISRA C:1998, C:2004, C:2012
- MISRA C++:2008