Mocking Embedded Hardware For Software Validation