Hallo NATHAN, (und natürlich alle anderen)
jetzt habe ich wieder etwas Luft, und kann dir deine Fragen beantworten.

Deine Fragen interpretiere ich so, dass du noch nicht allzuviel mit Programmierung zu tun hattest. Deshalb hole ich hier etwas weiter aus. Die darin enthaltenen Antworten zu Deinen Fragen werden dann eventuell besser verständlich.

Hier mal kurz einige Begriffe:
---------------
- Stapelverarbeitung
Unter Windows nutzt man eher den Begriff Batchprogramm. Das sind dann die *.bat-Dateien.
Unter Unix sagt man eher Shell-Programm oder Shell-Script. Typische Dateiendung wäre dann *.sh. Aber wie damaltor schon schrieb, sind unter Unix die Dateiendungen nicht unbedingt üblich.
---> Was machen die?
Zusammenfassen von Programmaufrufen, damit man nicht so viel tippen muss. (Sowohl unter Window als auch extrem unter Unix sind Programmmiermöglichkeiten in den Dateien möglich. Aber eher so was wie if und loop. Profis schaffen hier eine ganze Menge!)
<--> Beispiel: make-lib.bat (Im lib-Verzeichniss der Asuro-LIB)
Enthält 3 Aufrufe vom make-Programm mit Angabe von Parametern für das make-Programm

---------------
- Makefile
Anweisungsdatei zur Steuerung von Anweisungen/auszuführenden Befehlen, die 'in der Regel' dazu benutzt wird, eigene Programme zu übersetzen.
Die Hauptaufgabe dabei ist es, nur die Dateien zu bearbeiten, die sich seit dem letzten 'maken' geändert haben. Da zum Übersetzten auch meistens ein Linken gehört, kümmert sich die Steuerdatei 'Makefile' dann sinnvollerweise auch darum.
Wie damaltor schon schrieb, wird das Makefile vom Programm 'make' benutzt/gelesen/interpretiert um die darin enthaltenen Aufgaben auszuführen.
---> Warum Makefile.orig?
m.a.r.v.i.n hat diese Datei mit in die Asuro-LIB gepackt, damit man auf alle Fälle eine Sicherung hat. Sie wird nicht benutzt, und sollte auch nicht geändert werden. Nur Makefile ändern, wie oben im Thread von mir beschrieben.

---------------
- Übersetzten
Umwandeln von Text-Dateien in sogenante Object-Dateien.
Die Text-Datei ist z.B. eine Datei die test.c heißt und Programmcode enthält, der in C geschrieben sein kann.
Die Object-Datei hat absolut nichts mit dem Begriff objectorientierte Programmierung zu tun. In so einer Datei steht entweder ein sogenannter Zwischencode, oder es ist schon Assemblercode, der nach einem weiteren Übersetzen/assemblieren, von der CPU ausgeführt werden könnte.
- Übersetzen die 2.te
Auch der Zwischencode bzw. Assemblercode muss in ewas übersetzt werden, was eine CPU eigendlich erst ausführen kann.
Hier spricht man dann eher vom Assemblieren, als vom Übersetzten.
Beim Asuro haben wir damit aber nichts zu tun. (Außer man möchte ihn in Assembler programmieren.)

---------------
- Linken
Zusammenpuzzeln von einer oder mehreren Object-Dateien und bei Bedarf hinzuziehen von Funktionen aus Library's um zum Schluß ein zusammenhängendes Programm zu erhalten. (Windows-Programme dann *.exe, unter Unix in der Regel keine Extention.)
---> Warum aber keine EXE-Datei beim Asuro, sondern HEX-Dateien?
Das Asuro-Programm soll ja nicht auf dem PC laufen. Hier wird ein Cross-System benutzt, welches aus dem C-Programmcode, über den Cross-Compiler und den Cross-Linker dann die HEX-Datei erstellt. Diese Datei enthält den ausführbaren Binärcode für den AVR-Prozessor im Asuro.
---> Was soll Cross heißen?
Es wird auf einem Rechner etwas für einen anderen Rechner übersetzt. Hierbei ist der Begriff Rechner aber als CPU-Typ zu sehen.
PC mit Intel-CPU; Asuro mit AVR-CPU


Zitat Zitat von NATHAN
Sind die auf Seite 4 beschriebenen Verfahren zum erstellen eines eigenen Verzeichnisses mit zugehoerigem Makefile denn notwendig, wenn man den Ordner LIB-Home/examples/FirstTry verwendet?
Ich kann leider nicht erkennen, was du genau meinst. Kannst du die Textpasage bitte genau angeben?

Zitat Zitat von NATHAN
Nun von den Fragen zu den Bitten:
--- Vorteile der LIB:
(Nein, werde ich nicht in meiner Doku hinterlegen, da dort schon genügend Stoff zu technischen Abläufen ist. Die Vorteile müssen ja erst einmal durch die make-Orgien nutzbar werden. Nur dafür ist die Beschreibung von mir.)
- Neue/verbesserte Funktionen
- Doku der einzelnen Funktionen
- Beispielprogramme zu den Funktionen
- Platzersparnis durch LIB
---> Hier hat sich m.a.r.v.i.n viel Arbeit gemacht und die vorhandenen Funktionen aus der ursprünglichen Datei asuro.c verteilt auf viele einzelne Dateien. (adc.c asuro.c encoder.c encoder_low.c ...)
Das Geheimnis zum sparen von Platz ist nun, dass beim linken nur noch die Teile aus der LIB benutzt werden, die auch tatsächlich benötigt werden in deinem Programm. Allerdings werden dann immer alle Funktionen aus den einzelnen Dateien geholt, auch wenn nur eine Funktion aus der Datei benutzt wird.
Beispiel: Wird die Funktion SerWrite() benutzt, dann wird die Funktion aus der LIB geholt, da auch die Datei uart.c darin 'enthalten' ist. Da aber auch die Funktion SerRead() in der Datei uart.c geschrieben steht, wird auch diese Funktion in die HEX-Datei geschrieben, auch wenn diese nicht benutzt wird. (Auch die LIB selber kann also auch noch optimiert werden.)
Der Programmspeicherplatz für die Funktionen Go() und Turn() (Datei encoder.c) wird allerdings nicht benötigt, solange keine der beiden Funktionen in deinem Programm benutzt werden.


--- Modularitaet / WinAVR Pakete / Programmers Notepad / Editor
Ja, all diese Dinge sind getrennt zu sehen.
- Als erstes kommt das Betriebssystem (Windows / Unix / MAC / ...)
- Dann ein Editor (Notepad / Progr.Notepad / vi / Word / emacs / ...)
- Nun ein Compiler (Für Asuro: avr-gcc; Ist der Freeware Compiler gcc, mit Anpassungen für den AVR -> Cross)
- Dann noch eine Linker (Hier wird auch avr-gcc benutzt)
- Und für die LIB noch einen 'archiver' (gcc-ar)
- Und eine Eingabemöglichkeit, um diese Befehle aufzurufen. (Editor starten mit Doppelklick; maken in einer DOS-Shell; ...)

Für Anfänger geeignet und natürlich auch für Profis, gibt es dann noch die Entwicklungsumgebungen. Für den Asuro wird da das kostenlose AvrStudio mitgeliefert. Hier ist auch ein Editor vorhanden, ein Button/Menüpunkt zum übersetzten, ein Debuger zur (eingeschränkten) Fehlersuche. Leider sind aber gerade hier für Anfänger auch viele Menüpunkte vorhanden, die ohne grundlegenes Verständniss nur Verwirrung erzeugen. Doku lesen?

Beim Editor kannst du alles benutzen, was 'reinen' ASCII-Text in deiner Datei speichert. Das sind dann genau die lesbaren Zeichen, die du auch im Editor siehst. Keine Formatierungszeichen für fette, grüne Buchstaben sind dort vorhanden.
Ich persönlich bevorzuge den PL/SQL-Developer als Editor (kostenplichtig), da ich ihn in der Firma nutze und somit die Bedienung 'in- und auswendig' kenne.
Für mich ist es wichtig, dass ich mehrere Dateien gleichzeitig geöffnet haben kann, Merker an einzelnen Zeilen setzen kann um zu diesen Stellen springen zu können, die Ausgabe in gestochen scharfer Schrift erfolgt, Syntaxhighlighting AUSschaltbar ist, und vor allem: Alle Funktionen lassen sich über die Tastatur erreichen. (Warum immer zur Maus greifen, wenn man doch C-Programm schreiben will?)
Fazit: Editor nehmen, den man möglichst perfekt bedienen kann.

P.S.: Es gibt keinen C-Editor, oder HTML-Editor.
Manche Editoren können dir aber zu bestimmten Sprachen, in der man halt schreiben möchte, eine enorme Hilfestellung geben.



--- Quellcode zur Überprüfung
Ne, ne. Dies macht keinen Sinn, da diese Muster immer dann etwas anderes liefern werden, wenn z.B. die benutzt LIB anders ist als die im Muster, also von mir, benutzte LIB. Oder die Optimierung vom Compiler wurde geändert. Auch dann ergeben sich andere Zahlen für die Flash-Zeilen.


Zitat Zitat von NATHAN
Das muss um Himmelswillen nicht alles sofort sein ...
Das war ganz einfach.

Zitat Zitat von NATHAN
Brauchst dir wegen mir keinen Stress machen
Zu spät.

So, ich habe es mal wieder nicht geschafft, mich kurz zu fassen.
Ich hoffe, dass es trotzdem weiterhilft.

Gruß Sternthaler