The Process Model for embedded rapid prototyping is slightly different than the classic Rational Statemate model. The following figure shows the process as a flow chart. Each step in the flowchart is described below.
1. Modeling and Simulation - First you create a functional system model using Rational Statemate. Next, you simulate this model to verify that the functionality is correct. If during simulation any errors are found, you correct these errors in the model and re-simulate. This simulation/model correction loop continues until you are satisfied that the model functions correctly.
2. Embedded Rapid Prototype - The code and prototyping unit now is hooked up to the target hardware (or in some cases a test bed).
3. At this point in the process, you next move to verify this functionality in an environment that is closer to the actual product environment than that which was used for simulation. This requires the use of a hardware/software prototyping system which can be hooked up to the actual target product’s hardware and act as its control system. See the sidebar discussion in The Embedded Prototyping System regarding embedded prototyping systems.
a. The first step in moving to the prototyping unit is to capture information (target O/S, I/O mapping) which is specific to the prototyping unit.
c. The code and prototype unit information is then compiled and downloaded to the embedded rapid prototyping unit.
4. Analysis is performed on the execution runs to verify that the functionality, behavior and timing for executing the functions are correct.If any changes need to be made, the model is updated and resimulated as needed. Code is re-generated, compiled and downloaded to the embedded prototyping system. This updated prototype is then again executed and analyzed. This iterative cycle continues until the user is satisfied with the results of the test runs. At that time the specification (based on the model) will be handed off to software designers for implementation of the production version of software. This code can be tested against the test criteria generated from the model to verify that it meets functional specifications.
The next three main sections will examine each step of this process in detail, as well as related design issues. Simple Embedded Code Example presents a example of a small rapid embedded prototyping project to demonstrate how all of these elements come together.