asm volatile compile problem

All about the OSDev Wiki. Discussions about the organization and general structure of articles and how to use the wiki. Request changes here if you don't know how to use the wiki.
Post Reply
art6050
Posts: 2
Joined: Mon Feb 01, 2016 3:40 pm

asm volatile compile problem

Post 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?
User avatar
thepowersgang
Member
Member
Posts: 734
Joined: Tue Dec 25, 2007 6:03 am
Libera.chat IRC: thePowersGang
Location: Perth, Western Australia
Contact:

Re: asm volatile compile problem

Post 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).
Kernel Development, It's the brain surgery of programming.
Acess2 OS (c) | Tifflin OS (rust) | mrustc - Rust compiler
Currently Working on: mrustc
Post Reply