J'essaye de compiler un fichier pour le flash dans le Beaglebone Black. Tout fonctionne très bien, mais si je tente de permettre à la FPU avecCompilation croisée - Erreur: le processeur sélectionné ne supporte pas `fmrx r3, fpexc 'en mode ARM - Beaglebone
#define set_en_bit_in_fpexc() do { \
int dummy; \
__asm__ __volatile__ ("fmrx %0,fpexc\n\t" \
"orr %0,%0,#0x40000000\n\t" \
"fmxr fpexc,%0" : "=r" (dummy) : :); \
} while (0)
Je reçois l'erreur suivante
Error: selected processor does not support `fmrx r3,fpexc' in ARM mode
Error: selected processor does not support `fmxr fpexc,r3' in ARM mode
J'ai aussi essayé avec thumb mode
, mais je reçois les mêmes erreurs. Bien sûr, si je supprime la partie du code qui initialise le FPU, cela fonctionne très bien.
Pourquoi j'obtiens ces erreurs?
Makefile
[...]
CROSSPATH?=/usr/bin
CROSSPFX=$(CROSSPATH)/arm-none-eabi-
CC=$(CROSSPFX)gcc
AS=$(CROSSPFX)as
LD=$(CROSSPFX)ld
NM=$(CROSSPFX)nm
OBJCOPY=$(CROSSPFX)objcopy
OBJDUMP=$(CROSSPFX)objdump
CFLAGS=-Wall -Wextra -O2 -ffreestanding
ARCHFLAGS=-mcpu=cortex-a8 -march=armv7-a -mfpu=neon
CCARCHFLAGS=$(ARCHFLAGS) -marm
[...]
Je suis sur Arche, noyau 4.8.1
post-scriptum Mon professeur utilise le compilateur croisé linaro et il fonctionne très bien