OSDev.org
https://forum.osdev.org/

asm volatile compile problem
https://forum.osdev.org/viewtopic.php?f=8&t=30038
Page 1 of 1

Author:  art6050 [ Mon Feb 01, 2016 4:06 pm ]
Post subject:  asm volatile compile problem

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:
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:
gcc kernel.c

but it was not compiled:
Code:
kernel.c: Assembler messages:
kernel.c:22: Error: expecting operand after ','; got nothing

line 22 is :
Code:
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?

Author:  thepowersgang [ Mon Feb 01, 2016 11:14 pm ]
Post subject:  Re: asm volatile compile problem

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).

Page 1 of 1 All times are UTC - 6 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/