PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bash script zum compilileren und flashen



core
23.01.2007, 19:18
Hi ihr,

meine Idee ist folgende:
Da ich es leid bin immer mit avr-gcc, avr-objcopy und avrdude befehlen in der Konsole rumzuwursteln, deshalb will ich ein kleines bash script für linux schreiben, das mir (uns allen) dieses gewurstel abnimmt.
Geplant ist das man die input datei(en) eingibt und das kleine script dann die intel HEX Datei erstellt.
Dann soll eine abfrage kommen, ob man den Controller flashen will.

Bis jetzt klappt das noch nicht so gut, denn ich hab noch nicht so den Plan von bash-scripting, aber vielleicht könnt ihr mir helfen.

Hier das was ich schon geschrieben habe:

#!/bin/sh
clear

echo "*** Bitte Quelldateien mit leerzeichen getrennt eingeben ***"
read inputfiles

echo "\n*** Bitte Ausgabedateiname für die HEX Datei eingeben (z.B. output.hex) ***"
read hexfile

avr-gcc -O2 -mmcu=atmega32 $inputfiles;
avr-objcopy -O ihex -j .text -j .data a.out $hexfilele


echo "\n*** Soll der Controller mit dieser Datei geflasht werden? ***"
echo "j oder n?"
read input
avrdude -p m32 -c stk200 -P /dev/parport0 -U flash:w:roboter.hex:i
Es fehlt noch die if-Abfrage, ob der uC geflasht werden soll, da kam immer nur mist raus und außerdem weiß ich noch nicht so genau wie ich das realisieren soll, das ich keine Zieldatei angeben muss (Dateiname der eingegeben wurde von der Dateiendung trennen).

Des weiteren könnte man noch alle möglichen Optionen die der avr-gcc compiler zulässt einbauen und diese z.B. in einer Datei spiechern, die dann automatisch geladen wird beim start, aber so weit bin ich noch nicht ;)

Ich hoffe ihr helft mir ein bisschen und habt interesse an meinem kleinen Projekt.

Gruß Marcel

izaseba
23.01.2007, 19:48
echo "\n*** Soll der Controller mit dieser Datei geflasht werden? ***"
echo "j oder n?"
read input
if [ $input = "j" ]; then
avrdude -p m32 -c stk200 -P /dev/parport0 -U flash:w:roboter.hex:i
fi

So würde die if Abfrage aussehen...

Ich finde, aber Du solltest es besser mit Makefile machen und nicht mit der Frage nach den Quellen...

Gruß Sebastian

core
23.01.2007, 22:03
Hm, ok, hast wohl recht.
Ich hab mich noch nicht so recht mit Makefiles beschäftigt, aber das hab ich grad nachgeholt und festgestellt das es dann ähnlich einfach geht wie mit meinem script.

Gruß Marcel

izaseba
23.01.2007, 22:44
Hm, ok, hast wohl recht.

Ich will Dich von Scripten schreiben nicht abhalten, es hat einen guten Lerneffekt und mächtig sind sie ja auch,
aber wie Du schon rausgefunden hast ist make zum Kompilieren doch besser geeignet .
Viel Spaß noch beim Scripten :wink:

Gruß Sebastian