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
FAQs
What are the benefits in using the Staccato™ Software Design Method?
How difficult is it to learn and use Staccato™ for my next project?
What are the advantages to using Finite State Machines (FSMs) to design modules?
Is the Staccato™ Design Method appropriate for all embedded system platforms and development environments?
Is the Staccato™ Design Method appropriate for a 'multiprocessor/multicore' hardware platform?
How does Staccato™ handle device interrupts?
How does the Staccato™ Software Architecture compare with UML 2.0 Statecharts?
 

Q. What are the benefits in using the Staccato™ Software Design Method?

A. Customers benefit by more reliable and better performing products, designed to their requirements and specifications. Embedded Product developers benefit by having a consistent design method, which is easy for multiple software and hardware engineers to learn, use, and maintain (through good documentation) product software.
Top of Page...

Q. How difficult is it to learn and use Staccato™ for my next project?

A. Staccato™ is first a design method for embedded systems. That means proper documentation of Requirements and Designs, along with Test Plans and Validation and Verification. As part of this overall approach to good design practices, Staccato™ also provides the 'System Core' which requires your embedded system application to be properly partitioned into application tasks, each of which is designed as a Finite State Machine, which is directly coded into your modules. The Executive and System Calls pull it all together to give you excellent performance, and ease of maintenance. The concepts are easy to learn, and will provide a better understanding of how 'software' is nothing more than an extension and abstraction of the hardware. The Staccato™ Crossroads Software Development Kit (SDK) includes (2) IEEE CEU Certified courses, a Demo Project with C-source code and complete project documentation, all of which will provide you with all you need to start a new project.
Top of Page...

Q. What are the advantages to using Finite State Machines (FSMs) to design modules?

A. State Machines (FSMs) are the best way to describe the sequential behavior of a system component or attribute. State Diagrams can be used to convey the system's behavior in response to both internal and external events and conditions. The analysis of most source-code would reveal, to the knowing eye, the existence of some aspect of sequential operations. Unfortunately, this occurs more of a necessary artifact, as opposed to a direct design method, usually resulting in a poorly structured system that can be very difficult to maintain. The basic concept of a state machine is: if a specified event has not occurred, than nothing needs to be performed for this task. If it has occurred, then perform some action and transit to the next defined state, to continue the sequential process for this task. The Staccato™ Design Method is based almost entirely on 'direct coding' of these powerful State Diagrams. Their usage is what allows for excellent performance of your embedded software. For more information on this subject, check out the provided Staccato™ Tutorials here...
Top of Page...

Q. Is the Staccato™ Design Method appropriate for all embedded system platforms and development environments?

A. Yes. The Staccato™ Design Method is appropriate for all target platforms. The System Core is written in the 'C' language, although it's constructs can be encoded in any language that supports these constructs. No special 'tools' are needed other than a compiler/linker for your target processor. Staccato™ is appropriate for all embedded software systems: from 8-bit microcontrollers through embedded PC. Check the Products Page for device platforms currently offered for Staccato. No RTOS is required.
Top of Page...

Q. Is the Staccato™ Design Method appropriate for a 'multiprocessor/multicore' hardware platform?

A. The Staccato™ Design Method is based on a multiple processor architecture. Each 'application' task has it's own 'soft, virtual processor', which, along with the task's state machine process code, is analogous to a single processor system. In this manner, Staccato™  performs as a 'system of directly executed Finite State Machine (FSM)-encoded tasks'. Your entire set of application/FSM tasks can therefore be distributed across multiple processors. The only limitation to implementing such a design is the hardware architecture and software development tools. This approach works well with single processors as well.
Top of Page...

Q. How does Staccato™ handle device interrupts?

A. In addition to basic system timer interrupts, many systems provide hardware interrupts from a variety of devices, such as a serial communication device. Because of the excellent performance inherent in a system using Staccato™, your device Interrupt Service Routine (ISR) usually only needs to register, or flag the interrupt event to the device handler task, with minimal processing within the ISR. The corresponding task will be in a state where it can respond to this interrupt event appropriately. Because tasks are executed at such a high rate within the Staccato™ architecture, handling frequent device interrupts in this manner is recommended. However, for stricter timing requirements, there is no restriction on performing the necessary processing within the ISR.
Top of Page...

Q. How does the Staccato™ Software Architecture compare with UML 2.0 Statecharts?

A. The Staccato™ Software Architecture is based on a 'system of Finite State Machines (FSMs)', where, after proper partitioning, each software task is implemented as a Finite State Machine. Each state of a task's state machine is encoded as a single 'C' function, which is executed through completion by the Staccato™ Executive. UML 2.0 Statecharts is based on the work of David Harel, in which he describes a method for the 'visual formalism for complex systems'. StateCharts uses the concept of hierarchical state machines (HSMs), along with other concepts such as orthogonality, to provide the means to visually describe the behavior of an entire complex software system. Although intended as visualization method, products do exist that claim to translate StateChart representations into executable code. These methods typically assume that the resulting FSMs will be run on an RTOS/multihreaded platform, where events are captured and dispatched by the OS to an event queue for use by the appropriate tasks. In the Staccato™ Architecture, an RTOS is simply not needed, and each task performs its own event processing within its state machine code.
Top of Page...







 

© 2008 Mapletech Productions LLC, All Rights Reserved