Hello,
I’m getting started with an AT91RM9200 development kit
from atmel and am having trouble starting a simple application with UBoot. If I
compile my application into 32bit arm code only, I can successfully load and
run some simple startup code through the ‘loadb’ and ‘go’
commands that UBoot offers.
I have two files: startup.s and main.c. “startup.s”
does nothing more than set up some vector branches, initializes a stack, and jumps
to main. All main does is drive a user led on the development board. As I said,
compiling this in 32 bit arm seems to work fine when I load to 0x2000 0000. If
I try to compile the main.c source code in thumb mode, then the ‘bx’
branch to main fails and the code does not run. The code preceding the branch
is:
…
ldr r0, =main
mov r13, pc
bx r0
I was wondering if there was some initializations made by
UBoot that would prevent it from loading thumb code. Any help/ideas would be
especially useful. Thanks.
--Erick