Posts by fs-support_HK

    Alles klar, Treiber ist unterwegs.


    Mit freundlichen Grüßen,


    H. Keller


    PS: Wenn man so wie Sie die E-Mail-Adresse im Profil hinterlegt hat, braucht man sie nicht im Text selber nochmal hinschreiben. Da praktisch alle Foren gerne von Spammern gescannt werden, bringt das im dummsten Fall nur unnötige Spam-Mails auf die angegebene Mailadresse.

    Das Problem ist die Behandlung des Interrupts, die unter WinCE6.0 nicht mehr so einfach in eine User-Applikation ausgelagert werden kann wie bisher. Hier müssen wir uns noch generell ein Konzept ausdenken, wie das künftig funktionieren soll. Das betrifft im Prinzip alle WinCE6.0-Boards.


    Wenn es aber nur um die reine Übertragung auf dem FS-Bus geht, ohne Interrupts, dann können wir schon jetzt einen Treiber zur Verfügung stellen.


    Mit freundlichen Grüßen,


    H. Keller

    The PicoCOM1 builds the beginning of a completely new product family, the PicoCOM series. With 40mm x 50mm it is only half the size of the PicoMOD and 1/4 the size of a NetDCU. This board is targeted to communication and control. It has a 210 MHz ARM926EJ processor core, Ethernet, 2x UART, USB2.0 Host/Device (FullSpeed), I2C, SPI, I/O ports, Analog In, CAN2.0, Audio and support for SD/MMC Cards. And you'll get all this for a sensational low price!


    Please note that this board does not have the common display interface like all our other boards. If you need a display, you can for example use a serial or 8 bit parallel text or semi-graphics display with it.


    The PicoCOM1 is exclusively available via our new Internet Shop (registration required) and it is only supported by this forum here! This especially means no telephone or e-mail support.


    Best regards,


    H. Keller

    Two new sub-forums for the PicoMOD3 and PicoCOM1 are now available. These brand-new boards will be officially presented at the "Embedded World" Fair 2008 in Nuremberg (Germany) from February 26th to 28th.


    The PicoMOD3 is our first board that supports USB2.0 HighSpeed connections. It has a 533 MHz ARM920T processor core, Ethernet, 4x UART, CAN 2.0, Audio, FS-Bus, Touch Panel, I2C, SPI, I/O ports and support for SD/MMC Cards and CF-Card. Therefore this is a high-end board with the small size of the PicoMOD1.


    The PicoMOD3 is available via our usual distribution channels.


    The PicoCOM1 builds the beginning of a completely new product family. With 40mm x 50mm it is only half the size of the PicoMOD and 1/4 the size of a NetDCU. This board is targeted to communication and control. It has a 210 MHz ARM926EJ processor core, Ethernet, 2x UART, 2x USB2.0 Host (FullSpeed), 1x USB2.0 Device (FullSpeed), I2C, SPI, I/O ports, Analog In, CAN2.0, Audio and support for SD/MMC Cards. Please note that this board does not have the common display interface like all our other boards. If you need a display, you can for example use any serial or 8 bit parallel text or semi-graphics display with it.


    The PicoCOM1 is exclusively available via our new Internet Shop (registration required).


    Best regards,


    H. Keller

    I can't see any difference here. Your link works as well as mine. When I look at the status bar, I see no differences in the string text of the link that will be opened when clicking.


    However I'm using Firefox as browser. Maybe there is the difference. Or do you have any toolbars activated? Do you see any additional link here on the page within the text, other than yours and mine? Because maybe your browser tries to add advertisement (either by some toolbar or by AdWare or SpyWare) and "overloads" the above "here (click)" with its own content.


    Regards,


    H. Keller

    Quote from "RainerKa"

    und ist hier beim Initiallisieren ausgestiegen.


    IstOK = lpDirectDraw->SetDisplayMode (640, 480, 8,0,0);


    Ist Directx noch nicht funktionfähig????


    Aus der Manual-Page von IDirectDraw::SetDisplayMode:


    Quote

    Remarks
    As Windows CE does not support display mode changes, DDERR_INVALIDMODE will be returned if any mode other than the current one is passed to SetDisplayMode.


    Vermutlich nutzt der aktuelle Modus 16 bpp, dann klappt das mit 8 eben nicht.


    Mit freundlichen Grüßen,


    H. Keller

    Just pull the USB cable and plug it in again after a few seconds. This triggers the connection anew.


    I guess it has to do with the combination of the windows event handler and the USB driver. They are both more or less started in parallel during the boot process, but sometimes one is a little faster up and running than the other. When the USB driver is first, everything is OK, but when the USB driver is a little late, it probably misses the cable event.


    Maybe this can be influenced and therefore solved by the starting order (entry "Order:" in the device drivers under [HKLM\drivers\builtin]). We never researched this any further. We always saw this more as a minor inconvenience than a bug. But please let us know if you try and get an improvement.


    Regards,


    H. Keller

    Quote from "Ralf"

    Es könnte eventuell am Format NTFS liegen, das für das System zu grosse Zuordnungseinheiten hat.


    Für NTFS ist in WinCE kein Treiber dabei. Das geht also definitiv nicht.


    Quote

    Habe versucht die Festplatte mit FAT zu formatieren. Geht aber nicht bei dieser Grösse.


    Geht schon, nur verweigert WinXP dies (aus mir mal wieder nicht ersichtlichen Gründen) bei so großen Platten/Partitionen. Man wäre also auf ein externes Formatiertool angewiesen, welches das trotzdem macht. Mit meinem alten WINME war es problemlos möglich, auch größere Platten mit FAT32 zu formatieren. Theoretisch können mit FAT32 Platten bis zu 2TB formatiert werden.


    Wie zum Beispiel hier zu lesen ist, unterstützt Windows CE 5.0 maximal Partitionen mit 32GB und das gesamte Medium darf maximal 2TB haben. Bei WinCE 6.0 geht sogar noch mehr.


    Dabei ist die maximale Dateigröße auf jeden Fall aber auf 4GB beschränkt.


    Mit freundlichen Grüßen,


    H. Keller

    Pin 1 auf J5 war traditionell immer ein IRQ-Eingang. Entsprechend wurde er vom GPIO-Treiber nicht direkt verwaltet. Selbst wenn auf den neueren Boards dieser zwar technisch gesehen vielleicht auch als normaler I/O verwendet werden könnte, unterstützt dies der Treiber einfach nicht.


    Mit freundlichen Grüßen,


    H. Keller

    When memory was shown as low, then maybe your application has a memory leak, i.e. it continuously allocates memory but misses to free it again. Included with EVC++ or VS2005, there is the so called "Remote Heap Walker". This tool allows a check of the heap of any process. Probably by looking at the heap of your program at different stages, you can find some data there that should already have been freed again.


    Best regards,


    H. Keller

    So kurios es klingt, ich glaube das hat noch nie jemand ausprobiert. Wobei ich eigentlich keinen Grund sehe, warum es nicht funktionieren sollte. Ein USB-Stick ist genauso ein Mass Storage Device wie eine Festplatte. Auch beim Memory-Stick werden im USB-Protokoll die Befehle einer Festplatte simuliert.


    Es käme also mal auf einen Versuch an. Möglichst mit einer Platte ohne mehrere Partitionen probieren, denn das könnte evtl. noch ein Problem sein.


    Gruß,


    H. Keller

    The following example shows how to create a button with user defined content (style: Owner draw).


    The example creates a dialog with just one button. But instead of the normal way of showing the text content in black, it shows a red text. Any other content is also possible, just define something else in the DrawItem() method.


    The example was done with EVC++ 4.0 and uses MFC with the MFC wizard to create the dialog and button. Therefore the button is defined as a C++ class CMyButton.


    The basic steps to create this application are:


    • In Resource Editor, create dialog with button, in this case IDC_MYBUTTON and style "Owner draw"
    • With MFC Class Wizard, create a new class "CMyButton" with base class CButton.
    • With MFC Class Wizard for Class CMyButton, for Message "DrawItem" (not WM_DRAWITEM!) add a function that actually draws the contents of your button. In this case it draws the text in red.
    • With MFC Class Editor, Tab Member Variables, in the dialog class, add variable "m_MyButton" for IDC_MYBUTTON with the above type CMyButton.
    • Add OnButton() function to dialog as required to react to a button press.


    Regards,


    H. Keller

    Wir haben ja in der Zwischenzeit auch telefoniert. Wenn ActiveSync das Board nicht einfach durch Einstecken erkennt, obwohl die NetDCU per DIP-Switch korrekt auf USB-Device konfiguriert ist, dann könnte das Löschen der Registry vielleicht helfen.


    Schritt 1: NetDCU mit seriellem Kabel an PC verbinden (Debug-Schnittstelle)


    Schritt 2: DCUTermi auf dem PC starten. Wenn das Board nun gestartet wird, müssen diverse Meldungen zu sehen sein, z.B. die Version des Bootloaders, die Version von Windows, diverse Treiber, die ihre Meldungen ausgeben, usw. Achtung! Wenn Sie stattdessen das NDCUCFG-Tool sehen, ist es die falsche Schnittstelle. Dann die Schnittstelle gegenüber benutzen.


    Schritt 3: Am PC im DCUTermi die Taste 'S' drücken (großes S, nicht kleines s!!) und gedrückt halten, so dass sich das 'S' sich wiederholt. Gleichzeitig parallel das Board neu starten.


    Schritt 4: Nun sollte das Board nicht ins Windows booten, sondern im Bootloader stehen bleiben. Hier nun den Befehl 'R' eingeben. Die Frage, ob die Registry gelöscht werden soll mit 'y' bestätigen. Dadurch werden wieder alle Standard-Einstellungen aktiviert.


    Schritt 5: Das Board neu starten. Es müsste nun wieder das Windows hochfahren.


    Schritt 6: Nochmal probieren, ob ActiveSync nun das Board erkennt. Falls nicht, auch mal probieren, das USB-Kabel auf NetDCU-Seite nochmal aus- und nach ein paar Sekunden wieder einzustecken.


    Wenn alles nichts hilft, ist vermutlich die USB-Device-Schnittstelle defekt. Dann müssen Sie das Board wohl oder übel einschicken.


    Mit freundlichen Grüßen,


    H. Keller

    Quote from "Kaiser"

    1) Wo sind die restlichen 13MB RAM Memory, wenn unter "System Properties/General" 21MB verfügbar sind?


    Ein Teil des Speichers wird für das OS benötigt. Darin werden die Datenstrukturen und Variablen des Kernels wie z.B. die Pagetables für das virtuelle Speichersystem verwaltet. Auch der Kernel selbst kann nicht aus dem Flash heraus laufen, sondern wird ins RAM geladen, inklusive aller Treiber für die Hardware. Das sind die "fehlenden" MB.


    Quote

    2) Was genau ist "Storage Memory" und was "Program Memory"?


    Der restliche Speicher, der nicht direkt vom OS gebraucht wird, steht einerseits für Programme und deren Heaps und Stacks zur Verfügung (Program Memory) und andererseits für das virtuelle Filesystem. Wenn Sie z.B. in das Wurzelverzeichnis oder in das Windows-Unterverzeichnis Dateien abspeichern, dann liegen diese Daten nur im RAM in einer Art RAM-Disk. Das ist dann das Storage Memory.


    Da ein WinCE-System keine Auslagerungsdatei besitzt, muss der maximal für Programme zu nutzende Speicher konkret angegeben werden. Wenn Sie nur wenige bis gar keine Dateien ins RAM-Filesystem abspeichern wollen, dann können Sie den Bereich für das Program Memory entsprechend groß und für Storage Memory sehr klein machen. Standardmäßig ist der freie Speicher jedoch 50:50 aufgeteilt.


    Quote

    3) Wie kann der Wert für "allocated memory" für storage oder program per registry oder per ndcucfg verändert und gespeichert werden? Oder ist dies nur über diesen Schiebebalken möglich? Ändere ich den Wert per Schiebebalken, dann ist er nach dem Neustart wieder wie bisher. In der Registry finde ich auch keinen Eintrag mit "memory".


    Einen Registry-Eintrag hierzu gibt es leider nicht, auch kann die Einstellung nicht dauerhaft gemacht werden. Wie die Aufteilung aber per Software beim Systemstart einzustellen geht, darüber gibt es schon einen ausführlichen eigenen Beitrag (klick mich).


    Mit freundlichen Grüßen,


    H. Keller

    Das Display selbst oder der Inverter des Backlights erzeugen häufig recht starkes Rauschen auf den Touch-Leitungen. Dann wird der Messfehler bei der Kalibrierung zu groß und die Kalibrierung muss wiederholt werden. Hier hilft es oft, wenn das Touch und die Leitungen so weit vom Display/Inverter weg kommen wie möglich.


    Die Kalibrierung selbst muss schon sehr präzise durchgeführt werden. Auch wenn später die Bedienung problemlos mit dem Finger geht, kann es sein, dass die Kalibrierung mit einem Stift o.ä. durchgeführt werden muss.


    Wenn alles nichts hilft, kann der Registry-Wert


    HKLM\HARDWARE\DEVICEMAP\TOUCH\MaxCalError


    erhöht werden. Dieser Wert gibt an, welcher maximale Fehler bei der Kalibrierung noch akzeptiert wird.


    Weitere Infos auch in diesem Thread.


    Mit freundlichen Grüßen,


    H. Keller

    The newly designed web site is now up and running. It allows for easier navigation, has a fresher look-and-feel and you'll find other improvements in many places. Please enjoy the new F&S web site experience.


    Comments are always welcome.


    Best regards,


    Your F&S-Team