Non-Confidential | ![]() | ARM 100073_0608_00_en | ||
| ||||
Home > The ARM C and C++ Libraries > Support for building an application without the C library > Bare machine C with floating-point processing |
If you want to use floating-point processing in an application without the C library, there are a number of requirements you must fulfill.
These requirements are:
__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.
The register state also consists of sb
, the static base register, if Read/Write Position-Independent (RWPI) code applies.
_fp_init()
to initialize
the floating-point status register before performing any floating-point
operations.Do not build your application with the -mfpu=none
option.
-ffp-mode=fast
. In such cases, you can
also define the function __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 __rt_fp_status_addr()
, this word resides in the program data section, unless you
define __user_perthread_libspace()
(or in the case of
legacy code that does not yet use __user_perthread_libspace()
, __user_libspace()
).