This book provides embedded software developers with techniques for
programming heterogeneous Multi-Processor Systems-on-Chip (MPSoCs),
capable of executing multiple applications simultaneously. It describes
a set of algorithms and methodologies to narrow the software
productivity gap, as well as an in-depth description of the underlying
problems and challenges of today's programming practices. The authors
present four different tool flows: A parallelism extraction flow for
applications written using the C programming language, a mapping and
scheduling flow for parallel applications, a special mapping flow for
baseband applications in the context of Software Defined Radio (SDR) and
a final flow for analyzing multiple applications at design time. The
tool flows are evaluated on Virtual Platforms (VPs), which mimic
different characteristics of state-of-the-art heterogeneous MPSoCs.