Using high level modeling tools for embedded designs
Modeling of embedded designs - Part 1: Why model?
Modeling embedded designs - Part 2: Modeling method examples
Modeling embedded systems - Part 3: Where to model
Modeling embedded systems - Part 4: If prototypes aren't possible
In his recent blog on "Trends
in embedded software design," Michael Barr points out that despite
its advantages in small footprint, limited resource MCU based designs, the
C language without help is simply not up to the task of building systems
requiring over a million lines of code.
Because of this trend, he predicts that "tools able to reliably generate
those millions of lines of C code automatically for us, based on system specifications,
will ultimately take over." One state-machine derived candidate that
he mentions is the open source Quantum
Platform unified modeling language framework for event-driven programs.
To get a complete picture of modeling tools capable of auto-generating the
necessary code, be sure to read the four part series on "Modeling
embedded systems," by Shelley Gretlein. Based on a chapter she is
contributing to an upcoming 2013
book on software engineering, the series provides a good introduction
to the different model-based (MBD) tools such as LabView, MatLab and Simulink,
as well as the model-driven (MDD) Unified Modeling Language design framework.
To complement and expand upon her overview, collected here are a range of
contributed design articles, webinars and technical papers on many of the
modeling options available. Also included in the Resources Around the
Network section are a number of conference and technical journal papers
and presentations. Among these, my Editor's Top Picks are:
Quantum Programming for Embedded Systems
Design embedded algorithms with high level graphical tools
Model-Driven & Model-Based Design in industrial & machine control
Traditional methods of C programming will not go away and will be needed
to fine tune the performance of the generated code or write device drivers
to integrate it more closely to the hardware. But such high level tools are
a necessity for embedded programmers and while you may not like the idea
of auto-generated code today, Barr writes that: "I guarantee that once
you program for a state machine framework, you'll see the benefits of the
overall structure and be ready to move up a level in programming efficiency."
A crash course in UML state machines: Part 1
In this article series. Miro Samek introduces you to the basics of UML state machines basic notation, clarifying semantics, and provides some code examples to the role of UML state machines have in practical, everyday programming rather than mathematical abstractions. Up first: The over simplification of the event-action paradigm.
Build Safety-Critical Designs with UML-based Fault Tree Analysis - The basics
This three part series describes use of Fault Tree Analysis (FTA) in safety-critical design, taking advantage of UML profiling to create a safety analysis profile, including the definition of its normative metamodel. Part 1: The basics of safety & capturing of fault metadata for analysis.
Transitioning from code-based to model-driven software testing: Part 1
In a three part tutorial Moshe Cohen of Telelogic describes the new UML 2.0 Testing profile and how it can be used to extend traditional code-centric Test Case development into modeling Test Architectures and Test case behaviors, faster and with fewer resources.
Combining Model-Driven and Model-Based Design in industrial and machine control
Two popular approaches to high level embedded design, model-based development using Simulink and model based design using UML/SysML can be used effectively in a wide range of robotic and machine control systems.
Using object-oriented MATLAB for DSP
This hands-on how-to demonstrates how to use object-oriented programming features of Matlab 2008a to model C++ digital signal processing solutions.
Allocating memory in MATLAB-to-C code
MATLAB frees you from having to think about memory allocation and actively encourages the use of variable-size arrays. But memory, time, and hardware constraints limit how the C implementation allocates memory. Here are some workarounds.
Using a model-based tool to speed SDR digital down converter design
How to use model-based design methods to deal with errors in RF subsystems early in the design process rather than when physically tested at the prototype stage.
Leveraging multi-core processors with graphical system design tools
Randy Martin describes how high level system design methodologies in combination with an appropriate RTOS can be used to simplify development of multi-core-based embedded devices.
Back to the basics: Designing your embedded algorithms with high level graphical tools
Implementing algorithms for functions such as digital filters is much more of an art than a science. With this in mind, using an interactive and iterative approach is necessary so that you can quickly and efficiently move from design, to simulation, to implementation. Additionally, this approach encourages experimentation with various design parameters and can lead to further innovations.
Reconfigure factory machine controllers for higher efficiency operation
How to use Xilinx FPGAs and National Instrument's Reconfigurable I/O platform to build field oriented control systems that improve motor efficiency.
Using model-driven development for agile embedded apps:Part 1 – Why model and why MDA?
In a four part series of tutorials, Bruce Powel Douglass, author of "Real-Time Agility," presents a convincing argument as to why agile approaches are now necessary in embedded software development and the role of model-driven architectures and development can aid in this process.
Zynq-7000 All Programmable SoCs accelerate industrial automation
Zynq-7000 All Programmable SoCs from Xilinx, Inc. accelerate design productivity while increasing system performance and safety through single-chip system integration.
TI's new C2000 32-bit Piccolo F2805x MCUs boast 5x performance
Texas Instruments Incorporated's new highly integrated C2000 Piccolo F2805x microcontrollers are optimized for a variety of three-phase inverter motor control applications to enhance power efficiency and control performance.
ESC - LDRA and MathWorks integrate LDRA tool suite with Simulink
LDRA and MathWorks have integrated the LDRA tool suite with Simulink modelling tools. The integration offers independent verification and full traceability of all artifacts - whether requirements, model elements, or tests - throughout all phases of the lifecycle.
LDRA tools integrate with LabVIEW DO-178 certification
The LDRA tool suite has been integrated with National Instruments LabVIEW Virtual Instruments to provide hardware-in-the-loop (HIL) simulation, a technique used to develop and test the complex real-time embedded systems commonly found in military and aerospace designs.
NI updates LabView with improved hardware integration
As National Instruments prepares to open the doors of its annual NI Week conference it has unveiled NI LabVIEW 2011, the updated version of its design software.
Space Codesign releases new HW/SW co-design tools
Space Codesign Systems releases Version 2.4 ESL design tool for Hardware/Software co-design with new support for asymmetric multiprocessing (AMP).
Imperas debuts Cortex-A15/R4 Fast Processor Models
Imperas has released its models of the ARM Cortex-A15, Cortex-R4, Cortex-R4F and ARM1176 processor cores.
Imperas adds Cortex-M models to its OVP
Imperas has released its first models of the Cortex family of processor cores from ARM with models of the M-series of cores added to the Open Virtual Platforms (OVP).