Re: [arm-gnu] thumb code calling arm subroutine causes undefined insn exception
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [arm-gnu] thumb code calling arm subroutine causes undefined insn exception
- To: "arm-gnu@xxxxxxxxxxxxxxxx" <arm-gnu@xxxxxxxxxxxxxxxx>
- Subject: Re: [arm-gnu] thumb code calling arm subroutine causes undefined insn exception
- From: "Andrew Kohlsmith (mailing lists account)" <aklists@xxxxxxxxxx>
- Date: Sun, 25 Apr 2010 23:24:12 -0400
On Sunday 25 April 2010 09:48:25 pm Travis Geiselbrecht wrote:
> As far the blx, I think that is generated in ld, not gcc. I seem to
> remember there was some way to force ld to not use it, but I dont remember
> off the top of my head. I'd poke around on options there. Otherwise, this
> is where I'll have to bow out and let someone from CS handle it.
You're right on the ball.
from objdumping kernel.o:
00000004 <kernel_init>:
4: b508 push {r3, lr}
6: f7ff fffe bl 0 <irq_setup>
a: f7ff fffe bl 0 <rtc_init>
e: f7ff fffe bl 0 <oled_init>
12: f7ff fffe bl 0 <font_init>
16: f7ff fffe bl 0 <vibe_init>
from objdumping the final output file:
00001890 <kernel_init>:
1890: b508 push {r3, lr}
1892: f000 ec86 blx 21a0 <irq_setup>
1896: f7fe fdd1 bl 43c <rtc_init>
189a: f7fe fd8f bl 3bc <oled_init>
189e: f000 f841 bl 1924 <font_init>
18a2: f7fe ff3b bl 71c <vibe_init>
Now for a minute I thought it might have been because irq_setup may have been
too far away, but that doesn't seem to be the case.
-A.