Figure 14.1 illustrates a conventional development flow for creating embedded application software. Design work starts with the algorithm. Application developers generally use high-level design tools and languages such as C or C++ and they may also purchase pre-developed algorithms already written in those high-level languages.
Next, code developers translate the main algorithm and sub-algorithms into C to create a portable, processor-independent, application code base. After simulation and integration of the sub-algorithms and other application software modules into a coherent whole, the entire program is compiled for a target processor and the resulting application code is tested and profiled.
Often, to meet performance goals, software teams must convert critical sections of code into hand-tuned assembly code once a processor is selected. Assembly-code developers must carefully dovetail their variables into the processor’s available registers because there’s no way to add more registers to a fixed-ISA processor if the processor’s existing register set proves inadequate.
18.119.248.159