An integrated HW and SW fault injection environment for real-time systems