Development Techniques for Using Simulation to Remove Risk in Software/Hardware Integration


< Prev Contents  

Conclusion

The benefits of configurable software to potential component developers should now be readily apparent. Modular, configurable and reusable software components allow the developer's software to be used in a wide variety of systems. Embedded systems are particularly well placed to take advantage of this images tend to be static, making source level configuration more beneficial; and configuration can be used as a tool to help hardware/device abstraction, freeing the component developer from portability concerns. Resulting source configurable components can be faster, smaller, simpler, and can be tailored for a user's systems, but not at the expense of potential functionality.

Steps do have to be taken to manage the potential extra complexity. At the simplest level, to prevent conflicts, global variables and include files must be named in a way reflecting the hierarchy of components.

However, as proven in the eCos RTOS, it is possible to design tools and infrastructure to help control complexity. In the case of eCos, the infrastructure is CDL, and there are graphical configuration tools and testing infrastructure. These allow the user to easily change the configuration, navigating through what would otherwise be a maze of configuration points. With powerful tools, users can be helped by easy access to the component documentation, context sensitive help for each option, verification by rules that the chosen configuration is valid, and ultimately by self-configurable tests to verify for certain that the system behaves correctly in the chosen configuration. Doing this requires no special modifications to the tools instead the configuration information can be expressed in CDL, giving power and flexibility to the developer, while allowing modular components to be easily added to the system.

The effect is to greatly improve the cost, portability, flexibility and time to market for users of configurable software.


< Prev Contents