Design techniques for hardware/software co-design of embedded systems typically include specification concepts very specific to the target system,. i.e. microcontroller, operating system, etc.. In other words, an abstract system specification as well as a concrete implementation depends on operation system specific system calls, scheduling strategies, and system specific hardware/software interfaces. This makes it difficult to re-use and modify an existing design in another system. To improve this situation it is necessary to develop design methodologies with the following characteristics:
Specification at abstract level as much independent from target system as possible to improve reusability. Integrated simulation concept at abstract level for validation allowing cross compilation.Flexible hardware/software interface.