About embedded software development
When developing embedded applications, the resources available in the development environment normally differ from those on the target hardware.
It is important to consider the process involved in moving an embedded application from the development or debugging environment to a system that runs standalone on target hardware.
When developing embedded software, 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.