STACCATO TM Finite State Machine Software
  A Software Design Method and Architecture for Embedded Systems

 

Mapletech Productions LLC

Earn IEEE CEUs with the Staccatotm Crossroads SDK

Click here...

Staccatotm should be considered for all microprocessor and microcontroller embedded applications; 8-bit through 32-bit.

Contact

Lean, Green Finite State Machines for Embedded Software    No RTOS Required!

HOME

FSMs

PRODUCTS

RESOURCES

EMBEDDED TECH

  FAQ    Tutorials    Commentary    Articles      Contact Mapletech Productions LLC
Tutorials - Tutorial 3: A Staccato™ Overview

The Staccato™ Software Design Method and Architecture for Embedded Systems

Staccato™ Design Method

As a design method, it provides guidelines to ensure that your project gets off to a good start by generating Software Requirements Specifications (SRS) based on the Product Specifications. Your software development team will work closely with your hardware engineers to derive a meaningful set of Test Plans.

The next step is to partition your system into 'application' tasks, and design State Diagrams for each of the required tasks. The use of State Diagrams to describe the behavior of tasks over time is similar to the design methods used by hardware engineers in designing complex integrated circuit components, including processors, microcontrollers, FPGAs, ASICs, etc.

The Software Detailed Design document will contain these State Diagrams, along with relevant hardware block diagrams, data flow, and system partitioning to properly describe your software design.

Using these consistent design guidelines will allow your entire design team, software, hardware and team leaders to perform very meaningful reviews of the embedded system before any coding begins. After the requisite changes have been made to the design, code and testing can proceed upon approval of the design by the development team. With more people involved in using a consistent design method, project risks are reduced considerably.

 The Staccato Design Method allows for tight coupling with the hardware. During the integration with the hardware platform, you can use this method to simulate input and output to external devices which can be part of your system test plans.

Finally, an Independent Validation and Verification can be performed by a 'customer-engineer'. Upon reviewing the recommended Product Specifications, the Software Requirements Specification and the Software Design Document, the design can be validated. By performing the approved Test Plans, verification of the Embedded System Software can be verified in a meaningful manner.

The Staccato Software Design Method and Architecture for Embedded Systems is based on a 'system of Finite State Machines'

As part of the Software Design process, you will partition your system into application tasks. Each of these tasks will be responsible for an interface to an internal or external device, a communication protocol, or some algorithmic processing of data, as encoded in its State Diagram. By adding a customizable data structure that is analogous to the internal registers of a general-purpose processor, the application task

now constitutes a virtual processor. In other words, each application task has a virtual processor and its own program to execute. The 'executive' represents the host hard processor, applying its execution capabilities to each of the virtual processor application tasks. Very clever and very efficient! Easy to design, code, test, debug and maintain! Expect great real-time performance, as well!

The Staccato Design Method requires that your application tasks be implemented as Finite State Machines (FSMs)

State Diagrams are the best way to convey the behavior of a task, as it responds to events and conditions over time. These state machines can be coded directly into the task modules. The Staccato System Core provides system calls that make easy work of your state transitions, system timer services and inter-task communication.

By learning more about these design concepts, it becomes evident that Staccato is truly a software design method and architecture specifically for embedded systems. The Staccato software architecture is based on a 'system of Finite State Machines' and could be considered an abstraction of proven digital hardware design principles.

To learn more about Staccato and the Crossroads SDK with IEEE-CEU Certified Training Packageclick here.

 

© 2008 Mapletech Productions LLC, All Rights Reserved