|
tutorials |
|
Earn IEEE Continuing
Education Units (CEUs) for learning the Staccato™
Software Design Method and Finite State Machine Architecture for
your embedded system.
Click here...
|
|
|
Tutorial 3: 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 (SRS) and the Software Design Document (SDD), 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 API
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 Mealy-Moore digital
hardware design principles.
To learn more about Staccato™
and the Crossroads SDK with IEEE-CEU Certified Training Package,
click here. |
|