Forum: Mikrocontroller und Digitale Elektronik Linken usw in der Eingabeafforderung


von Willy wills Wissen (Gast)


Lesenswert?

Guten Tag

Ich habe noch immer das Problem mit dem Linken usw.(benutze myAVR 
Workpad und einen ATMEGA8)
Nun ist mir aber zu Ohren gekommen, dass ich dies auch über die 
Eingabeaufforderung in Windows machen kann.

Nun ist meine Frage wie die Befehle lauten?

Vielen Dank

Willy

von Willy wills Wissen (Gast)


Lesenswert?

hat noch nicht mal einer von euch ein dummes Kommentar?

von Der M. (steinadler)


Lesenswert?

Was willst du denn wohin linken... gib mal ein Beispiel...

von Willy wills Wissen (Gast)


Lesenswert?

Ich hab keinen Plan wie das gehen soll!

Das Komplimieren Linken usw. macht ja normalerweise dein Programm!
Bei mir nun mal nicht!

Nun will ich das ganze mal über die Eingabeaufforderung von Windows 
schritt für schritt machen! Habe geöhrt, das das irgendwie geht!

Nun ist meine Frage wie!

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Normalerweise benutzt man dazu ein Makefile (s. komplettes leeres 
Testprojekt im Anhang, aufzurüfen mit make all), in dem

1/ die Abhängigkeiten der einzelnen Dateien untereinander
2/ die Art und Konfiguration, Taktrate des µC
3/ die gewünschte Art der Übersetzung (Optimierung) und Ausgabeformat 
(Zieldatei)
4/ die Befehlsfolgen für den Übersetzungsprozess

stehen.

Man kann das von Hand zu Fuss eintippen. Dann sind die Befehle so 
einzugeben (Beispiel atmega128, 8 MHz, platzsparende Optimierung):

Compiling C: test.c
avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=8000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=./test.lst  -std=gnu99 -Wundef -MMD -MP 
-MF .dep/test.o.d test.c -o test.o

Linking: test.elf
avr-gcc -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=8000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=test.o  -std=gnu99 -Wundef -MMD -MP -MF 
.dep/test.elf.d test.o --output test.elf -Wl,-Map=test.map,--cref 
-lm

Creating load file for Flash: test.hex
avr-objcopy -O ihex -R .eeprom test.elf test.hex

Creating load file for EEPROM: test.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 --no-change-warnings -O ihex test.elf 
test.eep || exit 0

Creating Extended Listing: test.lss
avr-objdump -h -S test.elf > test.lss

Creating Symbol Table: test.sym
avr-nm -n test.elf > test.sym

Wie geschrieben, man kann das von Hand zu Fuss machen - du wärst dann 
allerdings der erste den ich kenne, der das auch macht ;-)

von Stefan B. (stefan) Benutzerseite


Angehängte Dateien:

Lesenswert?

Mist, Anhang vergessen ;-)

von Simon K. (simon) Benutzerseite


Lesenswert?

Wer sagt, dass es um C geht? ;)

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Der OP hat in Bezug auf myAVR Workpad gefragt. Daher können Assembler 
und C in frage kommen. Den Assemblerteil beherrsche ich überhaupt nicht, 
wollte aber trotzdem meinen Senf abgeben ;-) Da ist halt eine C Antwort 
draus gewörden. Wenn es nicht past, kann man die Antwort ja entfernen.

von Troll B. (blaubeer)


Lesenswert?

Simon Küppers wrote:
> Wer sagt, dass es um C geht? ;)

Vermutlich der Betreff.
Denn wer in AVR-Assembler werkelt, braucht kein Workpad und linkt 
(üblicherweise) nicht.

MfG, Heidel- ääähhh, Blaubär

von Simon K. (simon) Benutzerseite


Lesenswert?

Troll Blaubär wrote:
> Simon Küppers wrote:
>> Wer sagt, dass es um C geht? ;)
>
> Vermutlich der Betreff.
> Denn wer in AVR-Assembler werkelt, braucht kein Workpad und linkt
> (üblicherweise) nicht.
>
> MfG, Heidel- ääähhh, Blaubär

Jaja, der ";)" hatte schon seine Bedeutung :-)

Es wird mit hoher Wahrscheinlichkeit um C gehen. Muss aber nicht. 
Vielleicht gibts schon eine unbekannte Underground-Programmiersprache, 
die die gleichen Merkmale aufweist? ;) (<--!)

von Willy wills Wissen (Gast)


Lesenswert?

Danke Jungs!!!

Geht um C. Sorry, das ich es nicht geschrieben hatte!

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.