ARM fordító hiba

Fórumok

Sziasztok!

Nem régen tértem át arch alapú linuxra (manjaro), szeretnék arm-ra fejleszteni alóla. Viszont mikor fordítok egy programot, ugyan azzal a paranccsal, ami alatt, pl mint alatt lefordult, itt a következő hibát dobja:


make all
Building file: ../main.c
Invoking: Cross GCC Compiler
arm-none-eabi-gcc -DPART_LM4F120H5QR -DARM_MATH_CM4 -DTARGET_IS_BLIZZARD_RA1 -I/home/erbal/src/stellaris -I/usr/lib/gcc/arm-none-eabi/4.5.1/include-fixed -I/usr/lib/gcc/arm-none-eabi/4.5.1/include -I/usr/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/include -O0 -g3 -Wall -c -fmessage-length=0 -mthumb -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.c"
as: unrecognized option '-mcpu=cortex-m4'
subdir.mk:21: recipe for target 'main.o' failed
make: *** [main.o] Error 1

Még nem találkoztam ilyen hibával, esetleg ötletek? :)

Hozzászólások

Az a proci csak gcc 4.6-tól támogatott, neked meg ha jól látom, 4.5 van. (vagy nem tudom... Inkább nézd meg, de szerintem régi a gcc-d)

A fenti hibaüzenetből kitűnik, hogy a GCC szépen lefordítja a kódot, viszont az 'as' (GNU assembler) dobja a hibaüzenetet. Valószínűleg régi binutils van feltelepítve. A legutolsó verziót néztem (2.24), ott már a cortex-m4 támogatott, nem néztem melyik verziótól kezdve.

https://sourceware.org/binutils/docs-2.24/as/ARM-Options.html#ARM-Optio…

Szerk: vagy rossz a keresztfordítós build rendszer, és az x86/amd64 verziós 'as'-t hívja meg a gcc az ARM verziós (pl. arm-none-eabi-as) helyett. Biztos hogy az arm-none-eabi-binutils csomag is fel van telepítve?

Közben arra jutottam, hogy már túl sokmindent telepítettem, már én is összekavarodtam. Mivel friss telepítés volt, nem sajnáltam, újrahúztam a manjarot.

Feltettem ezt: https://launchpad.net/gcc-arm-embedded, illetve https://aur.archlinux.org/packages/arm-none-eabi-gcc/ ezt. Az eclipset beállítottam e szerint: http://kernelhacks.blogspot.hu/2012/11/the-complete-tutorial-for-stella…

Most itt járok:


make all
Building file: ../blinky.c
Invoking: Cross GCC Compiler
arm-none-eabi-gcc -DPART_LM4F120H5QR -DARM_MATH_CM4 -DTARGET_IS_BLIZZARD_RA1 -I/home/erbal/scr -O0 -g3 -Wall -c -fmessage-length=0 -mthumb -mtune=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections -MMD -MP -MF"blinky.d" -MT"blinky.d" -o "blinky.o" "../blinky.c"
../blinky.c: In function 'main':
subdir.mk:21: recipe for target 'blinky.o' failed
../blinky.c:45:1: sorry, unimplemented: Thumb-1 hard-float VFP ABI
{
^
make: *** [blinky.o] Error 1

Boldog új évet mindenkinek! :)

szerk.: sikerült megoldani, úgy néz ki, működik. Délután írok, hogy ha biztos, és akkor le is írom a megoldást. :)