Hardware/Firmware Interface Design: Best Practices for Improving Embedded Systems Development