how can I send the offset of a C struct to en assembly code ? For example
In my C code I have
typedef struct
{
unsigned int a;
unsigned int b;
} CMyStruct;
I send to an ASM function a pointer of a CMyStruct structure Let suppose that my pointer is into R0
To access to a and b attribute I need to do that.
ldr r1, [r0, #0] // read a
ldr r2, [r0, #4] // read b
Is there anyway to not specify #0 and #4 as contant value ? Something like
ldr r1, [r0, CMyStruct.a] // read a
ldr r2, [r0, CMyStruct.b] // read b
Thank's Etienne
There is a way, actually. The solution is contains a little bit of magic, but it's works. It's just works.
in c file:
in Makefile:
Finally you will got asm_defines.h, which you can include in your .S file.
How about something like this:
Obviously that's not quite right, since you don't want to hard code r0/r1/r2, but it should point you in the right direction.
You could use GCC extended inline assembly code and use the
offsetof
macro.