Building a distributed control application is currently performed ad hoc: it consists of building each application part as an independent program and connecting them through a communication layer. With the pervasiveness of multicore chips, future generations of controllers will include a variable number of cores and hosts, making such a static development process obsolete. To solve this issue, the FASA component framework for distributed control systems computes a deployment of the components onto the available computation resources (cores and hosts) and a static schedule for their execution. Depending on the given deployment, FASA chooses a suitable communication protocol for each pair of connected components. This makes FASA a scalable software architecture for heterogeneous distributed control systems. This article presents the framework, as well as a validation of FASA using a case study of a distributed control system comprising both multi-core and single-core processors.