Hallo Luke
Wie Martin schon geschrieben hat, das Ziel ist für einen
Anfänger ein wenig weit gesteckt.
Für das Projekt müsstest du dich erst einmal in das
USB-Protokoll und die Geräteklassen einarbeiten. Auf der
Festplatte ist auch noch ein Dateisystem, mit dem müsstest
du dich auch noch vertraut machen. Dann bedenke auch noch,
dass die Einzelfunktionalitäten nicht immer einfach zu
testen sind. Den Dateisystem Treiber kannst du ohne
USB-Treiber nicht richtig testen. Schließlich brauchst du
einen geeigneten Mikrocontroller, der die Protokolle
abarbeitet. z.B.: ARM (32 bit RISC-CPU)
In deren Programmierung und in deren internen Aufbau
müsstest du dich auch noch einarbeiten.
Das währe, wenn du alles selber machen wolltest.
Viel Arbeit.
Dazu käme noch die Hardwarentwicklung
(SMD-Platinen, wahrscheinlich Multilayer)
Unmöglich ist es aber nicht. Mann muss es nur anders herum
angehen. Zuerst ein Betriebsystem suchen, dass die
benötigten Funktionalitäten schon mitbringt und leicht
angepasst werden kann. Es gibt einige Linux-Versionen, die
auf unterschiedlichen Mikrocontroller-Familien laufen. Dazu
ein passendes EVA-Board finden und los programmieren.
Das klingt jetzt wieder einfach, die Fallstricke wirst du
schon finden.
Die Schwierigkeit beim Programmtest auf einem
Mikrocontrollersystem besteht darin, dass er keinen Monitor und auch keine Tastatur besitzt. Oft benutzt man eine
serielle Schnittstelle, über die man Statusmeldungen und
Fehler ausgibt und Eingaben entgegen nimmt.
Das müsstest du in deinem Programm auch selber schreiben.
Die neueren Controller werden über eine so genannte
JTAG-Schnittstelle programmiert, über die auch teilweise
eine Kommunikation mit dem Zielsystem stattfindet.
(Meldungen und Eingaben)
((
Ansonsten gibt es noch FPGAs, aber dass ist jetzt ein
bisschen viel. Falls du bei den Mikrocontrollern kein
passendes Board finden solltest. FPGA EVA-Boards gibt es in
jeden Fall mit USB-Host-Controller. Wenn man Glück hat,
braucht man ein Beispielprojekt nur geringfügig anpassen.
Ein FPGA ist ein programmierbarer Logikbaustein, in dem man
sogar eine ganze CPU und mehr nachbauen kann. In dem
Zusammenhang könnte man nach SoC (System-on-Chip) suchen.
Kannst dir dann auch mal den LEON-3-Core anschauen.
Ein FPGA währen jetzt aber endgültig zu viele Baustelle auf
einmal. Die Programmierung ist für einen
Softwareprogrammierer sehr ungewöhnlich, da man das
Verhalten einer Logikschaltung beschreibt. Darin beruhen
auch die meisten Anfängerfehler. Ein FPGA ist keine CPU, die
sequenziell arbeitet.
))
ARM:
http://de.wikipedia.org/wiki/ARM-Architektur
FPGA:
http://de.wikipedia.org/wiki/FPGA
SoC:
http://de.wikipedia.org/wiki/System_on_Chip
LEON-3:
http://www.gaisler.com/
SPARC:
http://de.wikipedia.org/wiki/Sun_SPARC
Erstmal eine Leuchtdiode mit einem Mikrocontroller zum
Blinken bekommen, dann sehen wir weiter.
MfG
Holger
_________________
George Orwell 1984 ist nichts gegen heute.
Der Überwachungsstaat ist schon da!
Leider lernen die Menschen nicht aus der Geschichte,
ansonsten würde sie sich nicht andauernd wiederholen.