Vielleicht fangen wir nochmal ganz von vorne an. Es wird langsam etwas konfus, alles noch nachzuvollziehen, was nun schon von Ihnen gemacht wurde und was nicht.
Vielleicht zuerst noch ein paar Sätze zum Konzept der NetDCU. Die NetDCU stellt eine Windows-CE-Plattform zur Verfügung. Windows CE ist Industriestandard, das heißt es ist für sich schon umfassend bei Microsoft dokumentiert. Und es macht keinen Sinn (und ist auch urheberrechtlich gar nicht möglich), diese Information bei uns noch einmal bereit zu stellen. Insofern müssen wir eine gewisse Kenntnis über die grundsätzlichen Möglichkeiten und die Nutzung von Windows CE einfach voraussetzen. Das beginnt bei den Fähigkeiten des Desktops, geht über die grundsätzliche Programmierung bis hin zur Funktion und Verwendung der Registry. Viele Dinge davon eignet man sich zwar häufig erst an, wenn man mit so einem Board arbeitet, aber die Informationsquelle dafür ist dann eben Microsoft.
Letztendlich heißt das aber, dass wir hauptsächlich diejenigen Dinge beschreiben, die für unsere Boards speziell sind, da sie von uns entwickelt wurden und somit nicht zum Allgemeinwissen gehören können. Dies in halbwegs einfacher Form zu vermitteln ist aber nicht immer einfach, bedenkt man den unterschiedlichen Wissensstand unserer Kunden und die Komplexität solcher Boards. Die Dynamik, mit der wir kontinuierlich unsere Boards inklusive Treiber und Software weiterentwickeln, stellt eine zusätzliche Erschwernis dar.
Letztendlich bedeutet dies für jeden, der mit unseren Boards beginnt, eine gewisse Einstiegshürde. Das wird vermutlich bei anderen Plattformen nicht anders sein. Die Erfahrung zeigt aber, wenn diese Hürde einmal überwunden ist, dann läuft eigentlich alles recht rund und unsere Kunden sind sehr zufrieden mit den Boards. Hierzu bieten wir einen Workshop an, wo dem Kunden genau diese ersten Schritte ausführlich erklärt werden. Es ist also möglich, diese Einstiegshürde innerhalb von 4 Stunden zu überwinden. Ich denke, das ist kein schlechtes Angebot und ich glaube nicht, dass dies woanders effizienter geht.
Wenn Sie nun nicht an so einem Workshop teilnehmen wollen/können, stellt das für uns ein gewisses Problem dar. Es ist eben nicht so einfach möglich, dieses Wissen in Form von Forumsbeiträgen oder sonstigen Artikeln ähnlich kompakt und umfassend rüberzubringen, wie in einem persönlichen Dialog und im direkten Kontakt mit dem Board, bei dem man immer individuell auf die Gegebenheiten eingehen kann.
Versuchen wir es dennoch ein wenig.
NetDCU-Ãœberblick
Die NetDCU-Boards stellen diverse Schnittstellen und Hardware-Fähigkeiten bereit. Je nach Board sind diese unterschiedlich. Wir, die Firma F&S, stellen für nahezu alle dieser Schnittstellen Treiber bereit, so dass die Hardware möglichst einfach über die Software angesprochen werden kann. Soweit wie möglich versuchen wir dabei, gleiche Schnittstellen, sofern jeweils verfügbar, auf den unterschiedlichen Boards auch gleich zu handhaben. Dennoch kann es sein, dass gewisse Einstellungen sich im Detail trotzdem minimal unterscheiden, es sind nun mal verschiedene Boards. Jedoch beschränkt sich das fast immer auf die Grundeinstellungen, die bei Windows CE in der sog. Registry vorgenommen werden. Ansonsten ist die reine Benutzung einer Schnittstelle später nahezu identisch.
Aus diesem Grund kann auch die Dokumentation in großen Teilen von Board zu Board übernommen werden. So kann es sein, dass speziell in der Anfangsphase, wenn ein Board noch relativ neu auf dem Markt ist, eben noch beim einen oder anderen Treiber auf die Dokumentation anderer Boards verwiesen wird, bis eben eine entsprechende Anpassung erfolgt ist.
Boot-Vorgang
Wenn eine NetDCU startet, dann wird zuerst ein Bootlader aus dem Flash geladen (vergleichbar mit dem BIOS eines PCs). Dieser Lader hat die Aufgabe, die Hardware des Boards zu initialisieren und dann das Windows zu laden. Dieser Bootlader, der bei der NetDCU EBoot heißt, bietet auch eine kleine Kommandoschnittstelle, über die man gewisse einfache und sehr grundlegende Einstellungen vornehmen kann. Die möglichen Befehle lassen sich über ? abrufen. Einige der Möglichkeiten hier sind:
- Debug-Meldungen aktivieren
- Display aktivieren
- Startverhalten des Boards festlegen
- Einen neuen Windows-Kernel aufspielen
Später im laufenden Betrieb bekommt man von diesem Bootlader eigentlich nichts mehr mit. Er lädt automatisch den Windows-Kernel und reicht dann die Kontrolle an diesen weiter.
Windows CE
Unsere NetDCUs sind immer schon mit einem fertigen Windows-System ausgestattet. Das heißt Bootlader und Kernel sind schon auf das Board aufgespielt und das Board kann direkt mit Strom versorgt werden und Windows läuft los. Dies ist nicht selbstverständlich. Bei anderen Firmen bekommt man eine CD mit einem BSP zum Board dazu, muss sich dazu den nicht ganz billigen Platform-Builder von Microsoft erwerben und dann kann man damit beginnen, sich erst mal einen eigenen Kernel zusammenstellen. Bis man dann da ist, wo man mit einer NetDCU gleich zu Beginn startet, vergehen oft schon Wochen.
Insofern wollen wir es dem Nutzer schon so einfach wie möglich machen. Aber wir können nicht erahnen, welche sonstige Hardware der Kunde noch einsetzen wird. Also zum Beispiel welches Display er anschließt. Insofern läuft Windows in einer Grundkonfiguration, bei dem ein Standard-Display vorkonfiguriert ist. Hat der Kunde nicht zufällig genau dieses Display, muss er eben sein eigenes Display konfigurieren, sonst sieht er nichts von der Grafik-Oberfläche, dem Windows-Desktop.
Der Kontakt zum Board kann über diverse Schnittstellen erfolgen. Von seriell über Ethernet, USB, oder auch durch Einstecken einer SD-Karte mit Software bei entsprechend ausgestatteten Boards. Auch hier ist zuerst mal die serielle Schnittstelle vorkonfiguriert und alles andere muss man erst selbst einstellen. Damit von den verfügbaren seriellen Schnittstellen so viele wie möglich dem Kunden zur eigenen Verfügung bleiben, beschränken wir uns mit den Debug-Meldungen und den Einstellmöglichkeiten auf einen einzigen Port. Allerdings kann dieser nur entweder die Debug-Meldungen anzeigen, oder das Konfigurationstool, das bei uns NDCUCFG heißt. Dies kann über ein Kommando im Bootlader Eboot umgeschaltet werden.
Flash anstatt Harddisk
Statt einer Harddisk besitzt die NetDCU Flashspeicher, der aber vergleichbar einer Harddisk nutzbar ist. Ein Teil davon wird für den Bootloader und für den Kernel selbst abgezweigt, aber der Rest steht zur freien Verfügung. Diese Unterteilung geschieht über eine Partitionierung, wie sie auch von PCs bei Harddisks bekannt ist. Je nachdem wie groß der Kernel ist, muss eben mehr oder weniger Speicher für ihn eingeteilt werden. Da man keinen Platz unnötig verschwenden will, macht man die Kernel-Partition natürlich üblicherweise nur minimal größer als benötigt. Darum kann es sein, dass bei Verwendung eines anderen Kernels eine Änderung dieser Partitionierung notwendig wird. Dies war z.B. bei Ihnen der Fall.
Die Dateien, die zum Kernel gehören, tauchen dann auch entsprechend im Verzeichnis \Windows auf. Sie können nicht verändert werden, da sie fest im Kernel integriert sind. Der freie Speicher ist dann unter dem Verzeichnis \FFSDISK verfügbar. Dort kann gelesen und geschrieben werden. Falls benötigt, kann dieser Bereich noch in weitere Partitionen unterteilt werden.
Registry
In diesem FFSDISK liegt dann auch die globale Windows-Registry. Dort werden alle Einstellungen gespeichert, die dauerhaft gemerkt werden sollen. Speziell werden dort auch die konkret vom User gewünschten Treibereinstellungen vorgenommen. Das heißt man kann z.B. die IP-Adresse des Netzwerks einstellen, man kann die Geschwindigkeit von seriellen Schnittstellen oder auch von SPI oder I2C voreinstellen, man kann die I/O-Leitungen konfigurieren und man kann sagen, welche Schnittstellen überhaupt verwendet werden und welche nicht.
Ãœblicherweise werden solche Einstellungen über das Control-Panel vorgenommen, vergleichbar der Systemsteuerung unter einem Desktop-Windows. Das sind einige Programme, die mit schönem grafischem Userinterface die Parameter anzeigen und zur Änderung bereit stellen. Es ist aber genauso gut möglich, direkt mit einem Registry-Editor diese Werte zu bearbeiten. Und auch das NDCUCFG ist ein Programm, mit dem man die Einträge der Registry setzen oder verändern kann. Entweder durch direkte Registry-Befehle, oder indirekt durch Nutzung eines Kommandos wie z.B. display. Letztendlich haben praktisch alle dauerhaft gemerkten Einstellungen irgendwelchen Einfluss auf die Registry.
Wir geben bei all unseren Treibern an, welche Einstellmöglichkeiten es gibt und was dazu in der Registry eingetragen werden muss. Das müssen Sie dann in der Entwicklungsphase selbst vornehmen. In der Serie haben Sie dann die Wahl. Entweder Sie bekommen von uns ein Standard-Board und dann müssen Sie selbst dafür sorgen, dass die Konfiguration, Ihre Applikationssoftware und ggf. neuere Versionen von Kernel und Bootloader auf das Board kommen. Oder gegen einen geringen Aufpreis geben Sie uns diese Daten und dann können wir für Sie das Board schon fix und fertig vorbereiten.
Verschiedene Windows-Kernel
Da Sie als Kunde es ja so einfach wie möglich haben sollen, müssen Sie sich nur um die von Ihnen verwendeten Treiber kümmern, nicht aber um den Kernel selbst. Damit Sie dennoch einen möglichst optimalen Kernel einsetzen können, stellen wir im Verlauf der Zeit verschiedene Kernel für ein Board auf unserer Webseite zum Download zur Verfügung. Diese unterscheiden sich in den Fähigkeiten. Zum Beispiel mit verschiedenen Versionen der .NET-Umgebung (das sog. Compact Framework). Oder mit MediaPlayer. Oder mit InternetExplorer. Selbstverständlich auch hin und wieder fehlerbereinigte Versionen. Um so einen Kernel verwenden zu können, müssen Sie im Prinzip nur wissen, wie man einen solchen Kernel aufspielt. Ãœber die Kernel-Interna brauchen Sie sich keine Gedanken machen.
Displays an der NetDCU
Noch ein letztes Wort zu den Displays. Ein LCD-Display, das man an die NetDCU anschließen kann, ist wirklich das pure Display. Man muss also genau wissen, welche Auflösung es hat, welche Timings und welche Signalpegel. Das ist anders, als bei einem LCD-Monitor, den man an einen PC anschließt. Dort ist noch eine Elektronik vorgeschaltet, die beliebige Auflösungen auf die konkrete Display-Auflösung umskalieren kann. Sowas geht bei den Displays an der NetDCU nicht. Die muss man wirklich mit der nativen Auflösung ansteuern. Insofern bringt es nichts, wahllos irgendwelche Einstellungen auszuprobieren, sondern man muss konkret das File nehmen, das für dieses Display gedacht ist.
Die NetDCU9 ist nun ein Spezialfall, weil sie es ermöglicht, zwei Displays anzuschließen, oder besser gesagt ein Display und einen analogen VGA-Monitor. Dazu muss dieser aber genau das gleiche Bild anzeigen, wie das Display. Also auch die gleiche Auflösung. Darum wäre es am sinnvollsten, zuerst das LCD zu konfigurieren, und dann in einem zweiten Schritt den Monitor dazuzunehmen.
Somit kommen wir zurück zu Ihrem konkreten Fall. Hier würde ich nun ein systematisches Vorgehen vorschlagen:
Schritt 1: Nochmal alles zurücksetzen und nochmal neu den Kernel aufspielen
Schritt 2: Das Display konfigurieren
Schritt 3: Das Windows so weit konfigurieren, dass über USB (Active Sync, Remote-Tools, Visual Studio) Kontakt aufgenommen werden kann.
Schritt 4: Den zweiten Monitor konfigurieren
Schritt 5: Ggf. das Netzwerk konfigurieren
Wenn diese Schritte erfolgreich gemacht sind, können Sie problemlos mit dem Board arbeiten.
Mit freundlichen Grüßen,
H. Keller