Sto provando a creare un progetto per Cortex-M4F. Il chip ha una FPU, quindi sto costruendo con -mfpu=fpv4-sp-d16 -mfloat-abi=hard
e non sto usando nessuna libreria per risparmiare spazio, quindi faccio -nostdlib -fno-builtin
.riferimento non definito a `__aeabi_ddiv 'e amici - creazione senza stdlib ma con -mfloat-abi = difficile
Ora voglio usare operazioni in virgola mobile, ma quando si fa così ottengo un errore di linker:
led1642gw_gain.c:(.text.led_calculateGain+0xc): undefined reference to `__aeabi_f2d'
led1642gw_gain.c:(.text.led_calculateGain+0x24): undefined reference to `__aeabi_ddiv'
led1642gw_gain.c:(.text.led_calculateGain+0x36): undefined reference to `__aeabi_dsub'
led1642gw_gain.c:(.text.led_calculateGain+0x48): undefined reference to `__aeabi_ddiv'
led1642gw_gain.c:(.text.led_calculateGain+0x54): undefined reference to `__aeabi_d2f'
led1642gw_gain.c:(.text.led_calculateGain+0x9e): undefined reference to `__aeabi_f2d'
led1642gw_gain.c:(.text.led_calculateGain+0xb6): undefined reference to `__aeabi_ddiv'
led1642gw_gain.c:(.text.led_calculateGain+0xc8): undefined reference to `__aeabi_dsub'
led1642gw_gain.c:(.text.led_calculateGain+0xda): undefined reference to `__aeabi_ddiv'
led1642gw_gain.c:(.text.led_calculateGain+0xe6): undefined reference to `__aeabi_d2f'
led1642gw_gain.c:(.text.led_calculateGain+0x10c): undefined reference to `__aeabi_f2d'
Perché? Se ho capito bene, non dovrebbe fare affidamento sulle funzioni di libreria ma usare le istruzioni native FPU ARM per quello.