Page 1 of 1

ASM questions

PostPosted: Jul 26, 2003 @ 11:39am
by Kak
Hi everybody!

I'm trying to debug a long assembly function with embedded visual C 3.0, using as device an iPAQ 3650 (strongarm), and I've run into some (conceptual) problems when doing so:

the problem is that, in example, my asm function starts at 0x1e01a000, and I've got a pool at 0x1e01a100.
I do an "adr r0,pool" to load the pool address, adr pseudoinstruction turns into a add r0,pc,#f8 (aprox), but r0 incorrectly loads a 0x0001a100 value. (instead of 0x1e01a100)

The problem is afterwards, I do a "ldr r1,[r0]" , and r1 gets the value at [r0] under "step by step" debugging, but when I run it with F5 from the debugger, a memory access error appears (it hangs the iPAQ if executed directly there)

that could be explained with the 26 bits address space, but the problem is I thought Strongarm was no longer using 26 bits address space... and anyway, I don't know if ANDing the address is a feature of strongarm (supposing the 26 bits thingy), or it's a debugger behaviour?

what's happening here? which one of my concepts is wrong? Do I have missed something in the .asm header?

TIA :)
Kak

PostPosted: Jul 28, 2003 @ 9:42am
by refractor

PostPosted: Aug 2, 2003 @ 3:14pm
by Kak

PostPosted: Aug 2, 2003 @ 3:50pm
by refractor

PostPosted: Aug 3, 2003 @ 12:28pm
by Kak