mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C und Assembler Code IAR Kickstart


Autor: schicki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte vom C-Code ein Assembler Unterprogramm aufrufen. Habe dabei 
große Probleme hat jemand einen Tip für mich?
Beim aufruf in C-Spy steht kein Code in meiner Assembler Routine.

Danke Schicki

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mußt du Parameter übergeben? Liefert das UP Werte zurück? Dann mußt du 
wissen, wie der Compiler dieses tut und du mußt dich mit deinem 
ASM-Programm daran halten.
Prinzipiell geht es so:

void asm_test (){
#asm
  nop
  nop
  nop
#endasm
}
Wie gesagt, daß ist der einfache Fall, keine Werte von und an die 
Funktion. Höllisch aufpassen mußt du, welche Register du benutzen 
darfst, weißt du es nicht, benutzte Register sichern/wiederherstellen.
Bei CodeVision kann man sich recht einfach Register für ASM freihalten.
globale Variable:
unsigned char dummy1 @14
unsigned char dummy2 @15

R14 und 15 werden dann nicht vom Compiler benutzt, gibt zwar ne Warnung, 
daß die Variablen deklariert, aber nicht benutzt werden. Aber da kann 
man großzügig drüber weg sehen.
Und als letztes: Warum willst du Assemblerroutinen einfügen? Was 
versprichst du dir davon? Ich benötige das wirklich nur ganz selten, die 
Wartbarkeit leidet auf jeden Fall darunter.

Autor: schicki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dem ASM Programm werden ein pointer und eine integer Variable übergeben. 
Die Variablen stehen in R14,R12. Habe große problem beim Debuggen da der 
ASSembler code nicht compeliert wird.
example

00fe      ?????
0100      ?????
...
...

Der ASM Code ist Harwarenahe und wurde von jemand anderen geschrieben.

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.