There are three options to deploy the SiL environment:
- on a development host with the redBlocks Workbench
- on an evaluation board with the target processor
- in case the Keil Vision IDE is used for target development, the SiL environment can be integrated on a development host within the uVision IDE's instruction set simulator
Deploying the SiL Environment in the redBlocks Workbench
Deploying the SiL environment in the redBlocks Workbench is the most straightforward way how to start working with the redBlocks Simulator. When a new project is created within the redBlocks Workbench, the SiL environment is readily set up by the New Project Wizard.
The SiL environment where the embedded application is integrated runs as a host application that interacts via local sockets with the redBlocks Simulator. Thus, there is no need to worry about the communication speed.
It is also more convenient to compile and debug the embedded application on the host within the redBlocks Workbench, instead of downloading it to a target board after each modification and recompile-run.
However, when running within the redBlocks Workbench, the embedded application is compiled with the redBlocks Workbench's GNU compiler instead of the target compiler, i. e. any target compiler's quirks and target dependencies (e. g. due to the target's endianness) cannot be detected in this setup. Therefore, this setup is very well suited during application and test case development. For qualification purposes, the tests should be run with the SiL environment being integrated on a real target processor.
Deploying the SiL Environment on Target Hardware
When deploying the SiL environment on a hardware target, you use the target development environment of your choice for compiling the target code (including the SiL environment) and doing on-target debugging. The target hardware that is used may either be the target device or an evaluation board. The simulation driver stubs of the SiL environment interact with the redBlocks Simulator either via a TCP/IP socket connection (if available on the target) or a UART interface.
When being run on the target, some simulation stubs may be replaced with target hardware drivers (e. g. flash memory drivers) that access the real target hardware instead of interacting with the redBlocks Simulator. This setup is very well suited to perform automated tests as part of the software verification process.
Deploying the SiL Environment in the Keil uVision Simulator
If the target development environment of your choice is the Keil Vision IDE, you can use the IDE's instruction set simulator in order to let the target application run on the development host from within the IDE's debugger. While the simulator within the uVision IDE is a pure instruction set simulator that is not capable of emulating any peripherals, the redBlocks Simulator adds this feature. The redBlocks Simulator interacts with the uVision IDE via its "uvsocket" interface. This interface is based on local socket communication and therefore very fast and reliable.
In this setup, the target compiler is used to generate code that can be executed on a real target processor. The uVision IDE's simulator is used to emulate the target processor on the host, so no target device is needed in order to do the simulation. Yet, target architecture impacts (e. g. endianness issues) can be detected in this setup.