Hallo zusammen, ich sitze gerade an einer Aufgabe für die Schule. Dabei geht es darum, die 6 verschiedenen Tools nach Ablauf zu sortieren und zu benennen, welche Datei verarbeitet bzw erzeugt wird. Bei der Reihenfolge dachte ich mir das so: 1. CodeWizard; erzeugt Projekt-Datei 2. Editor; verarbeitet a-Datei, erzeugt c-Datei 3. Compiler; verarbeitet c-Datei, erzeugt asm-Datei ? 4. AVR Studio 5. Assembler; verarbeitet ?, erzeugt HEX-Datei 6. Ponyprog; verarbeitet HEX-Datei Stimmt das so bisher? Ich hoffe, ihr könnt mir weiterhelfen ;) VG
Wo kommt der Code Wizard oder Editor her, was startest du um diese Tools zu bekommen?
Wie muss ich das verstehen? Uns wurden diese 6 Tools genannt, welche wir nun nach Reihenfolge sortieren sollen ...
Mit Verlaub, die Aufgabe ist unlösbar bzw die Lösungen sind mehrdeutig. Das AVR Studio beinhaltet einen Editor, einen Compiler und einen Assembler. Es ist nur die Verpackung für diese Werkzeuge. Ein Codewizard mag manchmal funktionieren, es gibt auch Leute, die ihn verwenden. Meist wird er überbewertet und kann nicht das Nachdenken vor dem Programmieren ersetzen. Ein Compiler kann durchaus direkt ausführbaren Code (das ist wohl mit HEX-Code gemeint) erzeugen. Der Umweg über den Assembler ist nicht zwingend. Das Einzige, was sicher ist, ist, dass am Ende mit dem Programmier-Werkzeug die "HEX Datei" in den Prozessor gefüttert wird.
Im Falle eines AVR geht das ohne AVR-Studio ungefähr so: Editor: Verarbeitet deine Tastatureingaben, erzeugt .c oder .asm-Datei Compiler: Verarbeitet .c-Datei, erzeugt .o-Datei Linker: Verarbeitet .o-Datei, erzeugt .elf-Datei avr-objcopy: verarbeitet .elf-Datei, erzeugt .hex Datei Ponyprog: brennt .hex-Datei in Prozessor Mit AVR-Studio geht es genauso, wobei das Studio den Editor und den Assembler enthält, und die anderen tools in der richtigen Reihenfolge aufruft. Insofern könnte man das an allererster Stelle einordnen. Was der Codewizzard machen soll, musst du näher erläutern. Denn üblicherweise versteht man darunter ein Programm, daß auf Basis grafischer oder tabellarischer Eingaben Sourcecode erstellt (.c oder .asm). Oliver
Sehe ich auch so, erst das AVRStudio öffnen und dann kann man die Tools in der genannten Reihenfolge verwenden. Und ist 'CodeWizard' richtig abgeschrieben? 'ProjectWizard' würde mehr Sinn ergeben, so hiess der Vogel im 4er Studio mal.
Vielen dank bereits für die Hilfe ;) Was er mit der Aufgabe genau bezwecken will verstehe ich auch nicht ganz, denn es gibt ja echt mehrere verschiedene Wege. Habt es nun mal so: 1. CodeWizard; erzeugt Projekt-Datei 2. Editor; verarbeitet .a-Datei, erzeugt .c-Datei 3. Compiler; verarbeitet .c-Datei, erzeugt .o-Datei 4. AVR Studio; verarbeitet .cof-Datei, erzeugt / 5. Assembler; verarbeitet .o-Datei, erzeugt HEX-Datei 6. PonyProg; verarbeitet HEX-Datei Kann ich das so lassen?
Also... wenn schon dann so: 1.) AVR-Studio: Ist die gemeinsame Verpackung. 2.) Projekt Wizard: Legt Verzeichnisse, CPU-Typ, Taktfrequenz usw fest. 3.) Editor: Erzeugt *.c Datei. 4.) Compiler: Erzeugt aus der *.c Datei Assembler Code und andere Info Dateien. 5.) Assembler: Erzeugt aus dem Assembler Code den ausführbaren Code. 6.) PonyProg: Füllt des ausführbaren Code in den Prozessor. Es fehlt ein wichtiger Teil: Der Linker-Locater, der den Benutzer Code und die verwendeten Bibliotheken zusammen fasst.
Felix O. schrieb: > > Kann ich das so lassen? Ich denke man kann Dir auf diese Frage keine Antwort geben. Die Aufgabenstellung macht schlicht keinen Sinn. Die Vermutung liegt nahe, dass Dein Lehrer selbst nicht weiss was er da lehrt. Ob Dein Lehrer damit befriedigt werden kann, kannst nur Du anhand der Schulungsunterlagen beurteilen. Grüsse, Rene
Georg G. schrieb: > Ein Compiler kann durchaus direkt ausführbaren Code (das ist wohl mit > HEX-Code gemeint) erzeugen. Also erstmal ist HEX kein ausführbarer Code, sondern ein Transportformat ähnlich etwa *.obj-Files. Theoretisch kann man damit tatsächlich alles machen, was auch mit *.obj möglich ist, mit Ausnahme des Transports von Bezeichnern. Praktisch wird es aber meist nur als Containerformat für das finale Binary benutzt. Es ist aber deshalb trotzdem nicht dieses finale Binary, was man schon daran merkt, daß das Hexfile in aller Regel deutlich größer ist als das Binary, meistens ziemlich genau um den Faktor 2,8, was natürlich kein Zufall ist. > Der Umweg über den Assembler ist nicht > zwingend. Das ist heute tatsächlich sogar bei fast allen Sprachen und bei den allermeisten Compilern so. Es ist aber ein schickes Feature, wenn die Werkzeuge in der Lage sind, das Ergebnis des Codegenerators auch als Asm-Datei auszugeben. Das macht es sehr viel leichter, Fehler in den Werkzeugen (oder auch bei ihrer Benutzung) zu finden. > Das Einzige, was sicher ist, ist, dass am Ende mit dem > Programmier-Werkzeug die "HEX Datei" in den Prozessor gefüttert wird. Nö. Es gibt auch Programmierwerkzeuge, die andere Formate verabeiten können, z.B. *.elf oder auch *.exe (in der Windows-Welt).
c-hater schrieb: > oder auch *.exe (in der Windows-Welt). Wenn wir schon kleine Rosinen ausscheiden, dann bitte korrekt. Bei EXE sind die Daten in einem Format, das noch reloziert werden muss. Damit direkt einen Prozessor zu programmieren wäre eher ungewöhnlich. Und so ganz als Randbemerkung: Intel hat in seiner ursprünglichen Definition des HEX-Formates durchaus die Übergabe von Debug Infos vorgesehen.
Georg G. schrieb: > Wenn wir schon kleine Rosinen ausscheiden, dann bitte korrekt. Ja, da bitte ich doch sehr drum. > Bei EXE sind die Daten in einem Format, das noch reloziert werden muss. Richtig. Die Exe enthält aber alle Informationen, die zur Relozierung nötig sind außer der Basisadresse (die gibt's nur als Defaultwert). Und wer sollte nun besser über den einzig fehlenden Wert informiert sein als ausgerechnet das Tool, welches den Kram in den höchst real existierenden Speicher schreibt? Das mußt du mir jetzt doch mal erklären... > Und so ganz als Randbemerkung: Intel hat in seiner ursprünglichen > Definition des HEX-Formates durchaus die Übergabe von Debug Infos > vorgesehen. Nicht wirklich. Natürlich kann man Strings mit den Symbolnamen in's Ziel befördern, das ist klar. Strings sind schließlich auch bloß Datenbytes. Aber es gibt keinen Recordtyp im Hex-Format, der einen Bezug zwischen diesen Strings und Adressen oder anderen numerischen Repräsentationen der Bezeichner (z.B. bei Aufzählungstypen) herstellen könnte. Deshalb kann das HEX-Format das eben nicht leisten. Bestenfalls können es darauf aufsetzende Formate und Tools. Ich wüßte aber nicht, daß auch nur Intel selber jemals ernsthaft etwas in dieser Richtung gemacht hätte, was natürlich nicht ausschließt, daß das geschehen sein könnte, als Intel für mich noch völlig unwichtig war. Das muß dann aber schon seeeehr lange her sein. Also länger her als ungefähr 30 Jahre...
Ich würde folgende Reihenfolge annehmen: 1.) AVR-Studio: Ist die gemeinsame Verpackung. 2.) Projekt Wizard: Legt Verzeichnisse, CPU-Typ, Taktfrequenz usw fest. 3.) Editor: Erzeugt *.asm Datei (Text) 3.) Editor: Erzeugt *.c Datei (Text) 4.) Assembler: Erzeugt aus der *.asm Objekt Code 5.) Compiler: Erzeugt aus der *.c Objekt Code 5.) Compiler: (Linker) klebt die Objektdateien zusammen und erzeugt *.Hex 6.) PonyProg: Schiebt der Code in den Prozessor. Wenn Du möchtest, kannst Du 3 und 3 tauschen. Ebenso 4 und 5a.
Er spricht aber von CodeWizard und nicht Project Wizard: http://www.codewizard.org Und das passt nicht ins Bild. Grüsse, René
Vielen vielen dank für eure vielen hilfreichen Tipps... eine kleine Frage zu einem etwas anderen Thema hätte ich da allerdings noch. Wie kann ich abfragen, wie lange eine Taste gedrückt wurde? Möchte so z.B. erreichen, dass bei kurzem Drücken die LED nur kurz aufleuchtet, bei längerem Drücken hingegen etwas länger. Wie bekomme ich das mit einfachsten Mitteln hin? Kann ich da evtl. einfach mit einer kleinen Delay-Zeit arbeiten oder wie würdet ihr das ganze lösen?
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.