Software Development for Embedded Multi-core Systems: A Practical Guide Using Embedded Intel Architecture