Product

IAR Visual State

Design and code generation is part of IAR's platform

IAR Visual State is a set of fully integrated development tools for designing, testing, and implementing embedded applications based on state machine models. 

Key benefits

IAR Visual State enables graphical design, code reuse, verification, and target-independent integration.

model based design visual state

Intuitive development

Graphical state machines make application logic easy to create, understand, and modify. They enable an iterative workflow where states in the machine correspond to states in the application, ensuring a natural development process while improving clarity and communication.
development team meeting reviewing code

Simplified maintenance and reuse

Focusing on design logic instead of writing code makes maintenance more efficient. State machine models can be reused in similar applications with minimal effort, reducing development time while ensuring consistency across projects with complex logic.
car inside with window and seat buttons

Support for high-integrity systems

IAR Visual State's generated code can be made MISRA C/C++ compliant and supports functional safety designs, including IEC-61508 compliance. Its formal verification detects unreachable states, dead-ends, and unconsumed inputs, making it easier to identify design flaws that traditional test suites might miss.
smiling developer with earphones and screens with code in the background

Target-independent code

The generated C and C++ code runs on any platform with a standard compiler. Since it doesn’t rely on compiler-specific features, it ensures flexibility and portability across embedded systems, while C# and Java support enables cross-platform development in diverse software environments

Features

IAR Visual State supports RTOS integration, code generation, simulation, verification, and variant management, helping development teams enhance efficiency, reliability, and software design.

logo circle filled

RTOS friendly

The generated code integrates seamlessly with RTOS environments. You can design control logic using IAR Visual State and assign state machines to RTOS tasks, allowing flexible distribution of tasks across multiple systems while maintaining efficiency and modularity.
logo circle filled

Two code APIs

Choose between human-readable code for traceability or compact table-based code for efficiency. The readable format provides a clear mapping from state machine to code, while the table-based approach optimizes size and execution performance.
logo circle filled

Execution simulation

The Visual State Simulator provides animated debugging, state machine tracing, and dynamic/static analysis. It offers step-by-step execution insights, helping developers visualize task interactions and system behavior for improved debugging and design validation.
logo circle filled

Built-in formal verification

Identify hard-to-test issues like unreachable states and blocking conditions. The verification engine detects unintended design flaws early, ensuring more reliable C, C++, C#, or Java implementations that would be difficult to uncover through traditional testing methods.
logo circle filled

Product variant support

Define multiple product variants efficiently while maintaining a shared base design. IAR Visual State allows conditional feature management, reducing the need for separate development tracks while ensuring consistency and maintainability across different product versions.

Supported standards

micropchips on board greyish
IAR Visual State has been developed in accordance with the UML notation, but can also be used for designing state/event systems compliant with the Mealy notation.
car with the lights on back and grey
All generated code C/C++ constructs adhere to ISO/ANSI C and can comply with MISRA-C:2004, MISRA-C:2012, and MISRA-C++:2008. C# and Java code follow structured programming principles for maintainability.

Third party integration

Connect with external tools and development environments to enhance flexibility and interoperability.

Control Center

The Visual State Control Center provides third-party products with an interface to IAR Visual State. Among other things, the Control Center can be used for remote simulation of your state machine model.

State machine API

An open C-based API allows access to models from various programming languages.

Code integration

Generated code integrates seamlessly with applications built using RAD tools like Microsoft® Visual C++® or other GUI toolchains. 

FAQ

Do I have to modify the generated code?

No. The code generated by IAR Visual State focuses on the control logic of a state machine system. The design is always the only explicit representation of the control logic. The model and the executing code should always stay synchronized. Modifying state machine code by hand carries the risk of introducing hard-to-find errors in the internal bookkeeping of states and conditions. 

How can automated code generation reduce development errors while maintaining flexibility?

Automated code generation eliminates human errors, ensures consistency, and accelerates development by producing optimized and validated C/C++ code.

How can automated code generation improve efficiency and reduce engineering overhead?

By eliminating manual coding errors and reducing debugging time, automated code generation increases developer productivity and accelerates product delivery.

How does model-based development help teams scale embedded projects with consistent quality?

A standardized, automated process ensures consistency across projects, allowing teams to reuse proven components and reduce time spent on rework.

Can IAR Visual State integrate with existing development environments?

Yes, it seamlessly integrates with IAR Embedded Workbench and other toolchains, supporting a smooth design-to-code workflow for embedded applications.

Welcome to our new website!

We're making updates to improve your experience. You might notice a few glitches.

Thanks for your patience, and we hope you find what you're looking for, otherwise, please feel free to contact us.