Народ , что то я совсем запутался.
подскажите.
Значит у нас есть 2 сишника Keil и GNU Sygnus
оба работают через mVision
В этой ветке пробегадло сообщение про GNU GCC
http://www.gnuarm.com/скачал, поставил, к mVision не подключился, но
из "ARM Cross Development with Eclipse.pdf" вытащил как компилить "вручную"
получился батник
Код
@echo off
c:\Micro\ARM\GNUARM\bin\arm-elf-as -ahls -mapcs-32 -o Startup.o Startup.s > Startup.lst
c:\Micro\ARM\GNUARM\bin\arm-elf-gcc -I./ -c -fno-common -O3 -g main.c timer.c serial.c ADC.c
c:\Micro\ARM\GNUARM\bin\arm-elf-ld.exe -v -Map main.map -TphyCore.ld -o main.out Startup.o main.o ADC.o serial.o timer.o
c:\Micro\ARM\GNUARM\bin\arm-elf-objcopy.exe -O ihex main.out main.hex
c:\Micro\ARM\GNUARM\bin\arm-elf-objdump.exe -x --syms main.out > main.dmp
pause
Простой проект с таймером и лампочками откомпилился и работает
Проблемы появились с FTT
линкер стал выдавать ошибку типа
/complex.c:10: undefined reference to `__addsf3'
/complex.c:12: undefined reference to `__addsf3'
вот complex.c
Код
7 Complex add(const Complex a,const Complex b)
8 {
9 Complex result;
10 result.r = a.r + b.r;
11 result.i = a.i + b.i;
12 return(result);
13}
Код
typedef
struct{
float r;
float i;
} Complex;
похоже что это из-за float. Типа линкер не нашел процедур сложения float
в libgcc.a они есть.
Кстати стоит ли вообще с этим компилером заниматься? Будет ли результат лучше чем у Sygnus?