Modern embedded systems are complex systems as they support the execution of concurrent tasks having multiple modes with variable application performance metrics (e.g., accuracy), implemented on platforms comprising of heterogeneous computing elements and various sensors. These sensors monitor various environmental factors which together constitute a context. As the system is expected to adapt to variations in context, we name these systems as Context-aware Adaptive Embedded Systems (CAES). We propose a DSE approach that helps select the right platform components by evaluating various application performance metrics while simultaneously considering task modes and the supported context. Further, the flow can generate the specifications of a run-time controller that adapts the system to changes in the context. We demonstrate the effectiveness of the proposed design flow through a case study on a real embedded system named MAVI. Our approach prunes upto 99.74% of the original design space and also enables generation of the specifications of the run-time controller for the MAVI system.