EmbDev.net

Forum: ARM programming with GCC/GNU tools c defined variable offset in asm


von Euler M. (logaritmuseadx)


Rate this post
useful
not useful
Working with WinARM2006xxxx (gcc v4.1.1), I am trying to access a 
variable defined in a c module from an assembly file in the following 
way:

ad.c:

short int ADBuffer[ADBUFFER_N];  //global
short int* pADIn _attribute_ ((section (".ocram"))) ; //global

fiq.s:
   LDR  R8, =RamVariableBase  //#OnChipRamBase, 0xb00000
...
...
   str  r10, [r8, #AD_IN_PTR_OFS] //store rd ptr

this works ok, but i need to know AD_IN_PTR_OFS.
I would like to do something like:

...
...
   str  r10, [r8, #(pADIn-0xb00000)] //store rd ptr

my gcc parameters:

arm-elf-gcc -g -O2 -march=armv4 -mtune=arm7tdmi -nostdlib 
-fomit-frame-pointer -fno-strict-aliasing -Wall -Wl,-T,crx.ld 
-Wl,--section-start,.ocram=0xb00000

I would appreciate sharing your knowledge, experience regarding this 
issue!

Thank You!

Euler

von Stephan M. (stephanm)


Rate this post
useful
not useful
Euler Megyer wrote:
> I would like to do something like:
>    str  r10, [r8, #(pADIn-0xb00000)] //store rd ptr

I'm unsure if I understood the intentions of your code, but to me it 
looks like you're basically looking for the following:

ldr r9, =pADIn /* Load address of pADIn (which is a pointer) */
str r10, [r9] /* Update pADIn (i.e. pointer value) */

Stephan

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.