Witam!!
Dostaję taki oto komunikat przy próbie "budowy projektu" przy pomocy GCC (z pakietu Yagarto):
arm-elf-ld: ERROR: swi_handler.o uses hardware FP, whereas main.out uses software FP arm-elf-ld: failed to merge target specific data of file swi_handler.o
Czyli problem przy linkowaniu, ale "wyróżnia się" tylko jeden plik ;)... niestety, nie wiem nawet czym, bo co to znaczy to FP?? Floating point?? ;) chyba nie :).. dodam, że wszystkie pliki tworzę z tymi samymi flagami przekazywanymi do kompilatora, dlatego nie rozumiem, czemu ten jeden inaczej używa tajemniczego FP... Co dziwniejsze - takie zachowanie obserwuje tylko na jednym komputerze, a drugim wszystko jest OK... a na obu instalowalem DOKLADNIE TA SAMA WERSJE oprogramowania!! Co moze byc nie tak?? PRzesyłam cały plik makefile :)...
Pozdrawiam Konop
PS Oczywiście make clean nie pomaga ;)
NAME = demo2378_blink_flash
CC = arm-elf-gcc CXX = arm-elf-g++ LD = arm-elf-ld -v AR = arm-elf-ar AS = arm-elf-as CP = arm-elf-objcopy OD = arm-elf-objdump
CFLAGS = -I./ -c -fno-common -O0 -g CXXFLAGS = -I./ -c -fno-common -O0 -g AFLAGS = -ahls -mapcs-32 -o LFLAGS = -Map main.map -Tdemo2378_blink_flash.cmd CPFLAGS = -O binary HEXFLAGS = -O ihex ODFLAGS = -x --syms
all: test
clean: -rm SPI_SSP0.o crt.lst main.lst fio.o irq.o crt.o swi_handler.o swi_calls.o uart0.o target.o main.o main.out main.hex main.map main.dmp main.bin
test: main.out @ echo "...copying" $(CP) $(CPFLAGS) main.out main.bin $(OD) $(ODFLAGS) main.out > main.dmp @echo "...building hex" $(CP) $(HEXFLAGS) main.out main.hex @echo "...creating main.lst file" $(OD) -h -S main.out >main.lst
main.out: crt.o swi_handler.o swi_calls.o target.o fio.o irq.o main.o uart0.o SPI_SSP0.o demo2378_blink_flash.cmd @ echo "..linking" $(LD) $(LFLAGS) -o main.out crt.o main.o SPI_SSP0.o uart0.o swi_handler.o swi_calls.o target.o fio.o irq.o
target.o: target.c
$(CC) $(CFLAGS) target.c
fio.o: fio.c
$(CC) $(CFLAGS) fio.c irq.o: irq.c
$(CC) $(CFLAGS) irq.c
crt.o: crt.s @ echo "...assembling crt.S" $(AS) $(AFLAGS) crt.o crt.s > crt.lst swi_calls.o: swi_calls.c $(CC) $(CFLAGS) swi_calls.c swi_handler.o: swi_handler.S @ echo "...assembling swi_handler.S" $(AS) $(AFLAGS) swi_handler.o swi_handler.s > swi_handler.lst
uart0.o: uart0.c @ echo "...compiling uart0.c file" $(CC) $(CFLAGS) uart0.c SPI_SSP0.o: SPI_SSP0.c @ echo "...compiling SPI_SSP0.c file" $(CC) $(CFLAGS) SPI_SSP0.c
main.o: main.c @ echo "...compiling main.c file" $(CC) $(CFLAGS) main.c