Architecture 1
-
Arch 10 – Enhanced Framework
Quantum Platform (QP) provides a higher level of abstraction (events and states) over tradition RTOS primitives such as threads, queues, mutexes, etc. It allows us to focus on actual behaviors rather than lower…
-
Arch 9 – Application Framework
Hierarchical State Machines as Building Blocks Over the last few episodes, we introduced the concept of finite state machines (FSMs), hierarchical state machines (HSMs) and asynchronous system design. We have looked into using…
-
Arch 8 – LED Pattern Statechart
In the previous episode, we presented a couple sequence diagrams showing an initialization scenario and an interval update scenario. They help us understand the high level design and interaction among components to support…
-
Arch 7 – Asynchronous vs Synchronous Design
Having learned about the notation and rules of statecharts, as well as how to implement statecharts with the QP framework, we are now ready to take on a real-life design problem with statecharts.…
-
Arch 6 – Introduction to QP
In previous episodes, we have looked at conventional finite state machines (FSMs) and common techniques to implement them, such as double-switch, state table and state pattern. We introduced their more sophisticated cousins of…
-
Arch 5 – Hierarchical State Machines
That was an account of how an air force pilot, seeing a statechart for the first time, could spot an error in the behaviors of a fighter jet: “If an outsider could come…
-
Arch 4 – Finite State Machines
Finite State Machines Before we introduce the powerful concept of hierarchical state machines (HSM), let’s review a related concept of finite state machines (FSM) which is the foundation of the theory of computation.…
-
Arch 3 – Saying Hello With LED
Hello World In embedded systems, a common theme of “hello world” applications is blinking an LED. Despite being a simple task, it is very effective in walking us through the hardware setup, development…
-
Arch 2 – Object-oriented Design in C++
The Language for Embedded Systems Even as other computer languages such as Python and Javascript have made their way into the embedded industries, C and C++ remain dominant in the fields. The main…
-
Arch 1 – Welcome to Statecharts
The Architecture Series In this series, we will look into modern software architecture and advanced design techniques for reactive and asynchronous systems. While the focus is on embedded systems, the same concepts and…