Opportunities and challenges in embedded systems