function fadd (A, B : Float) return Float
function fcos (V : Float) return Float
with Export, Convention => C, External_Name => "cosf";
function fdiv (A, B : Float) return Float
function fexp (V : Float) return Float
with Export, Convention => C, External_Name => "expf";
function fln (V : Float) return Float
with Export, Convention => C, External_Name => "logf";
function float2int (V : Float) return int
pico-sdk rewrites this one too
function float2uint (V : Float) return unsigned
function fmul (A, B : Float) return Float
function frsub (A, B : Float) return Float
function fsin (V : Float) return Float
with Export, Convention => C, External_Name => "sinf";
function fsqrt (V : Float) return Float
function fsub (A, B : Float) return Float
function ftan (V : Float) return Float
with Export, Convention => C, External_Name => "tanf";
procedure Initialize
__gnat_initialize_bootrom must be called before any of the __aeabi functions, which means it needs to be called before elaboration. crt0.S takes care of this, unless Use_Startup=false.
function int2float (V : int) return Float
pico-sdk doesn't use int2float and instead implements __aeabi_i2f in software. Maybe the ROM is missing an edge case?
function uint2float (V : unsigned) return Float