Most embedded applications are initially developed in a prototype environment with resources that differ, in memory and processor power, from those available in the final product. Therefore, it is important to consider the process involved in moving an embedded application from one that relies on the facilities of the development or debugging environment to a system that runs standalone on target hardware.
When developing embedded software using the toolchain, you must consider the following:
Understand the default compilation tool behavior and the target environment so that you appreciate the steps necessary to move from a debug or development build to a fully standalone production version of the application.
Some C library functionality executes by using debug environment resources. If used, you must re-implement this functionality to make use of target hardware.
The toolchain has no inherent knowledge of the memory map of any given target. You must tailor the image memory map to the memory layout of the target hardware.
An embedded application must perform some initialization, such as stack and heap initialization, before the main application can be run. A complete initialization sequence requires code that you implement in addition to the ARM Compiler C library initialization routines.