Modulprogrammierung
Logfile
20. Dezember 2013
von
Andreas Birkert
Inhaltsverzeichnis
1
Einleitung
2
Modulprogrammierung
2.1
Erstes Modul auf Gericom-Laptop unter Kernel 2.6
2.2
Modul registriert sich mit einer Major Device Number
2.3
hello-4 auf COBRA unter Kernel 2.4
2.3.1
Erster Versuch schlägt fehl
2.3.2
Die Lösung ist das Including von "Rules.make"
2.3.3
Das "hello-4.o" läßt sich auch auf dem COBRA-Board erfolgreich starten
2.3.4
Versuch "mknod" von Hand
3
Entwicklung des Treibers QADC
3.1
Warum "Read-only file system"?
3.2
Bootvorgang um Mount-Befehl erweitern
3.3
Wie erhalte ich ein weiteres Device
3.4
Neuer Versuch, den Treiber qadc zu laden
3.5
Der Befehl "open" funktioniert nicht wie gewünscht
3.5.1
Fehlersuche
3.6
Untersuchung des Completion Flag
4
Hardware Poti-Wert wird in Software sichtbar
4.1
Einschalten
4.2
Treiber laden
4.3
Überprüfung, ob Treiber geladen
4.4
Test mit noch ungeschickter Ausgabe
4.5
Erste erfolgreiche Ausgabe bei Poti-Stellung grob in der Mitte
4.6
Wiederholte Ausgabe bei Poti-Stellung grob in der Mitte
4.7
Ausgabe bei Poti-Stellung grob auf drei-viertel Stellung
4.8
Wiederholung der Ausgabe bei Poti-Stellung grob auf drei-viertel Stellung
4.9
Ausgabe bei Poti-Stellung grob auf fünf-sechsel Stellung
4.10
Wiederholung der Ausgabe bei Poti-Stellung grob auf fünf-sechsel Stellung
4.11
Ausgabe bei Poti-Stellung grob auf ein-viertel Stellung
4.12
Wiederholung der Ausgabe bei Poti-Stellung grob auf ein-viertel Stellung
4.13
Ausgabe bei Poti-Stellung grob auf fast Null Stellung
4.14
Ausgabe bei Poti-Stellung höchste Spannung am Anschlag
4.15
Ausgabe bei Poti-Stellung wieder etwa in der Mitte
5
Optimierung des Treibers
6
Realisierung einer GUI
6.1
Erste Idee: HTML-Datei alle 10 Sekunden neu beschreiben
6.2
Zweite Idee: Ansatz cgi_demo als cgi_qadc
6.2.1
Was wurde modifiziert
6.2.2
Test dieser Codeänderung
6.3
Codeanalyse
6.3.1
cleanUp
6.3.2
getGETvars
6.3.3
getPOSTvars
6.3.4
getRequestMethod
6.4
Anpassung Netzadresse an neue Netzumgebung mit DHCP
6.4.1
Inbetriebnahme des COBRA-Boards mit neuer SW
7
Offene Punkte
7.1
Textausgaben der Programme auf die Console nicht koordiniert
8
COBRA-Boot
8.1
Widerspruch: init läuft, obwohl execve zurückkehrt
8.2
printf-Innenleben
8.3
printf-Hello-world Debug-Session
8.3.1
Benutzung des GDB-Servers
Anhang
A
Liste der Makes
A.1
Der Kernel 2.4 für das COBRA-Board
A.2
Treiber QADC
A.3
Testprogramm für den Treiber QADC
A.4
CGI-Binary
A.5
Diese Dokumentation
B
Historische Highlights von Andreas Birkert:
B.1
10.04.2005: Erster erfolgreicher Start des neu compilierten uClinux auf dem COBRA-Board
B.2
14.04.2005: Untersuchung des proc-Verzeichnis
B.2.1
Ping funktioniert nur unter Kernel 2.4, aber nicht im Kernel 2.6
B.2.2
Referenzboot-Output des eingebauten kernel 2.4
B.2.3
Eigen compilierter Kernel 2.4: Ping funktioniert!
C
QADC-Register des Coldfire 5282
C.1
Status des QADC
C.2
Reset des QADC
C.3
Supervisor oder User-Mode
D
Literatur
D.1
MCF5282UM