www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Assembler mit C verknüpfen


Autor: Jan Mika (Firma: x-pin.com GmbH) (jaenson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gruß!

Ich habe zwei Geräte die über eine, sagen wir mal weniger sichere 
Leitung verbunden werden sollen. Das eine soll eine verschlüsselte msg 
abschicken, das andere soll sie empfangen, entschlüsseln und verarbeiten 
(alles auf dem SPI-Bus).

Habe viel herumgesucht und einige AES-Implementierungen entdeckt, die 
scheinbar für AVRs gedacht sind. Die meisten schlugen mit ~70 KB zu 
Buche und waren somit für den vorgesehenen ATmega48 leider zu groß (auch 
für die pinkompatiblen 88er und 168er).

Als letztes ist mir

http://point-at-infinity.org/avraes/

ins Auge gestochen.

4,44 Kb hex-file ist auch erträglich (88er oder 168er)

Das Problem dabei ist, dass der source in assembler geschrieben wurde 
ich aber das Programm in C schreiben möchte (bzw für den Host bereits 
geschrieben habe und dort lediglich die encrypt-function einbauen 
möchte).

Ich stelle mir das ganze so vor:
der assembler spuckt auch ein object-file aus, dazu schreibe ich meinen 
header und linke das main mit eben diesem object-file, soweit so gut.

Leider schaff ich es nicht den source mit zB avr-as zu compilieren, mit 
AVR-studio ist alles kein Problem, aber wie kann ich im Studio c & asm 
verknüpfen? Da geb ich doch am Anfang an welchen von den beiden 
compilern ich nutzen möchte.

Weiters würde es mich interessieren ob das .obj file des Studios gleich 
ist  mit einem zB im linux von der gnu-avr-toolchain erstellten.

Für jeglichen input bin ich dankbar.

Gruß Jan.

Autor: Kai Scheddin (zeusosc)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
jo, dass kannst du,..
avr-gcc hat einen assembler,...
die source datei kannste auch beim aufruf der gcc.exe einfach an den 
assemblierer weiterleiten,...
die gnu-gcc pages sind in der handhabung eines 
compiler/assemblierer/linker etwas ausführlicher,..
ich habe mich damit auch reichlich schwer getan, besonders beim aufruf 
der labels,..

naja, du musst auf jedenfall mit den erzeugten (--save-temps) listings 
arbeiten,. das hat mir ne menge geholfen,..

im anhang ein beispiel wie die zusammenarbeit zwischen asm und c/c++ 
aussehen könnte, sowie irq table und makefile,..
grüüüße der kai

____________________________________________
edit:
Die Object files des Studios und des (non GNU) avr-gcc sind nicht 
dieselben,..

Autor: Jan Mika (Firma: x-pin.com GmbH) (jaenson)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das Beispiel wird mich sicher noch weiter bringen, danke schon mal.

Aber hast du vlt in den AES-source geschaut?
Hab ihn jetzt noch als Anhang hier gepostet.
Außer AVR-Studio versteht kein assembler was da steht, vA die ganzen 
pseudo-ops sind denen immer fremd.

AVR-Studio verwendet ja irgend so nen eigenen Atmel-Assembler...

Der asm guru bin ich nicht, riecht irgendwie danach... ;)

Gruß Jan.

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.