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


von Jan M. (Firma: x-pin.com GmbH) (jaenson)


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.

von Kai S. (Firma: ZeuSWarE GmbH) (zeusosc)


Angehängte Dateien:

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,..

von Jan M. (Firma: x-pin.com GmbH) (jaenson)


Angehängte Dateien:

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.