Optimized partitioning and priority assignment of real-time applications on heterogeneous platforms with hardware acceleration