Mixing simulated and actual hardware devices to validate device drivers in a complex embedded platform