EmbDev.net

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


Author: Euler Megyer (logaritmuseadx)
Posted on:

Rate this post
0 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

Author: Stephan M. (stephanm)
Posted on:

Rate this post
0 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

Reply

Entering an e-mail address is optional. If you want to receive reply notifications by e-mail, please log in.

Rules — please read before posting

  • Post long source code as attachment, not in the text
  • Posting advertisements is forbidden.

Formatting options

  • [c]C code[/c]
  • [avrasm]AVR assembler code[/avrasm]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]




Bild automatisch verkleinern, falls nötig
Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.