Target platforms needed to be the first choice when developing systems using assembler. Moving on to C, designers had more flexibility. But they were quickly locked into a specific target as the run-time libraries prevented migration to different platforms. This progression leads to model-based design.
Targets, Targets, Targets
Platform choice was less of an issue when there were fewer targets available. Yet these days, the options are mindboggling. It's no longer just a choice between processor A and processor B. Digital signal processors (DSPs), digital signal controllers (DSCs), multiple core processors, and even FPGAs are viable targets for embedded systems.
With real estate, it's location, location, location. With embedded solutions, it's target, target, target. Optimizing system cost, performance, and flexibility means choosing the proper target. But these days, software is such an important part of the solution, the choice of target and software tools is tied together?that is, unless you use abstraction to disconnect these choices.