INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Inline Assembler
16.08.2016, 12:44
Beitrag #1
Inline Assembler
Möchte mit einer Inline Assembler-Funktion das SRAM des Arduino auslesen, geht dies und mit welcher Anweisung?

Hans-Jürgen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.08.2016, 19:40
Beitrag #2
RE: Inline Assembler
Hallo Hans-Jürgen,
dann wirst du dich mit dem AVR ASM - Tutorial hier http://www.avr-asm-tutorial.net/avr_de/index.html beschäftigen müssen. Ist halt nicht so der Standard beim Arduino massiv ASM zu benutzen.
Frage: Was möchtest du eigentlich machen / erreichen?
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.08.2016, 09:43
Beitrag #3
RE: Inline Assembler
Habe mir eine LED&KEY Platine mit TM1638 IC gekauft. Bei der Überlegung was ich da anzeigen kann, bin ich auf die Idee gekommen den SRAM-Inhalt Schritt für Schritt aus zu lesen und in Hex anzeigen zu lassen.
Für eine Speicherstelle, also mit „lds r0, 0x0100 \n\t“ funktioniert dies auch.
Wenn nur aber die Konstante durch ein Pointerregister ersetze, schmiert mir der serielle Monitor ab.

Gruß Hans-Jürgen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.08.2016, 19:24
Beitrag #4
RE: Inline Assembler
Hallo hans-Jürgen,
schau mal bitte hier: http://www.mikrocontroller.net/articles/...und_R31.29
Abschnitt "Der Z-Pointer"
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2016, 06:29
Beitrag #5
RE: Inline Assembler
Hi,
mal ne kleine Anmerkung von mir zu dem Thema.
Aus einem Sketch heraus Werte in ein Register wie Port, Timer etc. zu schreiben ist kein Problem weil da keines der Rechenregister tangiert wird bzw. wir da diese Inhalte nicht stören.
Wenn wir aber Werte in ein Rechenregister laden wollen dann sollte man zuerste mal den Wert dieses Registers sichern mit einem PUSH Rxx womit der Wert erst mal auf den Stack wandert. Dann führen wir unsere Operation durch... und wenn wir fertig sind wird das Register wieder hergestellt mit POP Rxx.

Und den Wert aus Rxx sollte man mit Variable = Rxx in den Sketchbereich holen können.... so meine Vorstellung und Verständnis der Materie... probiert habe ich das allerdings auch noch nicht.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2016, 08:24
Beitrag #6
RE: Inline Assembler
Vielen Dank für Eure Hinweise.
Ich hab es nun hin bekommen, die Routine sieht so aus:
asm volatile(
"label1: \n\t"
"mov r26, %4 \n\t"
"mov r27, %5 \n\t"
"ld r0, x+ \n\t"
"mov %2, r0 \n\t"
"ld r0, x+ \n\t"
"mov %3, r0 \n\t"
"mov %0, r26 \n\t"
"mov %1, r27 \n\t"
:"=r" ©,"=r" (d),"=r" (e),"=r" (f)
:"r" (a),"r" (b)
:"r0","r26","r27"
);

Funktion: Speicheradresse laden und zwei Byts lesen.

Gruß Hans-Jürgen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste