Real-Time Embedded Systems: Design Principles and Engineering Practices