Page 1 of 1

asm volatile compile problem

Posted: Mon Feb 01, 2016 4:06 pm
by art6050
Hi,

According to http://wiki.osdev.org/Raspberry_Pi_Bare_Bones tutorial, I did the steps until linking the kernel. I get this error:

Code: Select all

alireza@alireza-VirtualBox:~/Downloads$ arm-none-eabi-gcc -T linker.ld -o myos.elf -ffreestanding -O2 -nostdlib boot.o kernel.o
/home/alireza/opt/cross/lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld:linker.ld:1: ignoring invalid character `#' in expression
/home/alireza/opt/cross/lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld:linker.ld:1: syntax error
collect2: error: ld returned 1 exit status
I invested the .c code mentioned in the tutorial and tried to compile it with gcc with this command:

Code: Select all

gcc kernel.c
but it was not compiled:

Code: Select all

kernel.c: Assembler messages:
kernel.c:22: Error: expecting operand after ','; got nothing
line 22 is :

Code: Select all

asm volatile("__delay_%=: subs %[count], %[count], #1; bne __delay_%=\n": : [count]"r"(count) :"cc");
Would you please tell me how I can solve the problem?

Re: asm volatile compile problem

Posted: Mon Feb 01, 2016 11:14 pm
by thepowersgang
1. Where's the # in that linker script coming from? (The wiki page doesn't have one)
2. Compiling ARM code using your system gcc won't work (your system gcc probably targets x86_64, which has a different assembler syntax).