mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zugriff auf ImprintTable (hier Tiny441) in C?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: H.Joachim S. (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar, ist mit ein paar Zeilen Assemblercode erledigt und funktioniert 
auch.
Geht aber davon aus, dass die zu lesende Adresse in R26 übergeben wird 
und das Ergebnis in R30 zurückgegeben wird. Und genau das gefällt mir 
nicht. Mit nem anderen Compiler wird das wahrscheinlich eh nicht 
funktionieren (damit kann ich leben), aber wer weiss schon wie es nach 
einem Compilerupdate aussieht? Diese Konvention muss ja nicht erhalten 
bleiben.
Kann man das komplett in C erledigen?

unsigned char ReadImprintTable (unsigned char adr)
{
#asm
.equ RSIG=5
.equ SPMEN=0
.equ SPMCSR=0x37

push r16
in r16, sreg

mov r30, r26
clr r31
ldi r26, ((1<<RSIG)|(1<<SPMEN))
out SPMCSR, r26
lpm r30,Z

out sreg, r16
pop r16
#endasm
}

Autor: Jim M. (turboj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
H.Joachim S. schrieb:
> Diese Konvention muss ja nicht erhalten
> bleiben.

Es ist extrem unüblich, das C-ABI beim Compiler zu ändern. Dazu zählt in 
welchen Registern/Memory Locations Funktionsargumente und Rückgabewerte 
liegen.

Autor: Peter D. (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm boot_signature_byte_get() aus der <boot.h>

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.