AVR Studio: Liste der SRAM-Adressen statischer Variablen

Gast #3715909
Lesenswert?

Hallo,

ist es möglich sich mit dem AVR Studio eine Liste mit den SRAM-Adressen 
der statischen Variablen auszugeben?

Ist da avr-nm das Richtige? Wenn ja, verstehe ich die Ausgabe nicht!

Folgender Beispielcode:
1
int main(void)
2
{ 
3
  static uint32_t test32 = 0x12345678;
4
  static uint16_t test16 = 0;
5
  test16 = (uint16_t)test32;
6
  test32 = 0x12345678;
7
}

Im Watch-Fenster des Simulators im AVR-Studio werden nun folgende 
SRAM-Adressen angzeigt:

test32 0x0100 (0256 dez)
test16 0x0104 (0260 dez)

Mit
avr-nm --size-sort --print-size -r -td *.elf

bekomme ich folgende Ausgabe:

00000214 00000066 T main
00000160 00000026 T __do_copy_data
00000186 00000016 T __do_clear_bss
08388864 00000004 d test32.1356
08388868 00000002 b test16.1357

Wie komme ich denn auf die SRAM Adressen?
Ist die Ausgabe durch avr-nm der Speicherbedarf für Initalisierung der 
statischen Variablen im FLASH?

Wäre klasse, wenn mir da jemand auf die Sprüunge helfen könnte!

Grüße

Guido
Gast #3716278
Lesenswert?

Georg G. schrieb:
> Sieh dir das automatisch erzeugte *.lss File an. Da steht alles
> drin.

Aber so ne richtige Liste ist das ja auch nicht:
1
...
2

3
  test16 = (uint16_t)test32;
4
  de:  80 91 00 01   lds  r24, 0x0100
5
  e2:  90 91 01 01   lds  r25, 0x0101
6
  e6:  a0 91 02 01   lds  r26, 0x0102
7
  ea:  b0 91 03 01   lds  r27, 0x0103
8
  ee:  90 93 05 01   sts  0x0105, r25
9
  f2:  80 93 04 01   sts  0x0104, r24
10
  test32 = 0x12345678;
11
  f6:  88 e7         ldi  r24, 0x78  ; 120
12
  f8:  96 e5         ldi  r25, 0x56  ; 86
13
  fa:  a4 e3         ldi  r26, 0x34  ; 52
14
  fc:  b2 e1         ldi  r27, 0x12  ; 18
15
  fe:  80 93 00 01   sts  0x0100, r24
16
 102:  90 93 01 01   sts  0x0101, r25
17
 106:  a0 93 02 01   sts  0x0102, r26
18
 10a:  b0 93 03 01   sts  0x0103, r27
19
 10e:  80 e0         ldi  r24, 0x00  ; 0
20
 110:  90 e0         ldi  r25, 0x00  ; 0
21

22
...

Klar man kann es bei den STS-Befehlen sehen.

Dann muss man sich wohl selber daraus eine entsprechende Liste 
generieren!?
Gast #3717125
Lesenswert?

Stefan Ernst schrieb:
> Etwas offensichtlicher wäre es, wenn du dir die Adressen nicht
> unsinniger weise dezimal ausgeben lassen würdest.

Ahhh ... cool. Danke!
1
avr-nm --size-sort --print-size -r -tx *.elf

...
1
000000d6 00000042 T main
2
000000a0 0000001a T __do_copy_data
3
000000ba 00000010 T __do_clear_bss
4
00800100 00000004 d test32.1356
5
00800104 00000002 b test16.1357

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren