If you want to use floating-point processing in an application without the C library you must:
__rt_raise()if you are using the heap.
main(), to avoid linking in the library initialization code.
Write an assembly language veneer that establishes the register state required to run C. This veneer must branch to the entry function in your application. The register state required to run C primarily comprises the stack pointer.
Provide your own RW/ZI initialization code.
Ensure that your initialization veneer is executed by, for example, placing it in your reset handler.
Use the appropriate FPU option when you build your application.
_fp_init()to initialize the floating-point status register before performing any floating-point operations.
Do not build your application with the
If you are using software floating-point support and a floating-point
mode that requires a floating-point status word (enabled by default
in ARM Compiler 6, and is disabled by the armclang command-line
-ffast-math), you can also define the
__rt_fp_status_addr() to return the
address of a writable data word to be used instead of the floating-point
status register. If you rely on the default library definition of
this word resides in the program data section, unless you define
in the case of legacy code that does not yet use