Forum: PC-Programmierung Windows CE 2013


von Russe (Gast)


Lesenswert?

Hallo,

WinCE ist wirklich nicht mein Bereich.
Wir wollen aber eine alte Maschine neu auflegen und da bietet sich als 
BS WinCE an. Da wir langjährige Erfahrung mit Fujitsu gehabt hatten, 
entscheidete wir uns dessen Board D3313 einzusetzen. Dafür gibt es laut 
Fujitsu auch BSP mit WinCE. Also besorgte ich den Board, installierte 
auch PlatformBuilder.
Meine Frage lautet wie bekomme ich Image auf den D3313 drauf und wie 
kann ich das Gerät in Visual Studio Attachen und später mal Debuggen.

Danke im Voraus
Gruss

von Frank K. (fchk)


Lesenswert?

WinCE ist auf dem Rückzug. Es wird nur noch von wenigen 
Prozessorherstellern im ARM-Bereich unterstützt: im Wesentlichen TI 
(Sitara) und NXP (iMX6). Punkt. Und da auch nur ARM v7A Architektur, 
kein ARM v7M, kein ARM11 mehr, kein ARM9 mehr, kein MIPS mehr. 
Alternativ x86 PC Hardware. Microsoft benutzt den CE-Kernel selber nicht 
mehr für ihre eigenen Produkte, sondern nur noch den NT-Kernel, der auch 
im Desktop-Windows verwendet wird. Auch Windows Mobile und die XBox 
nutzen den NT-Kernel, weil der einfach leistungsfähiger ist und die 
aktuellen Prozessorgenerationen damit klarkommen. Das letzte 
Microsoft-Produkt, das noch den CE-Kernel verwendet hat, war Windows 
Phone 7.8. Danach war Schicht im Schacht. Und wenn Microsoft seine 
eigenen Produkte intern aufs Abstellgleis schiebt, sollte auch dem 
dümmsten Kunden klar sein, was das heißt.

Ich sehe daher nicht, dass sich Win CE da "anbietet". Wer das seit 20 
Jahren macht, nun gut. Heutzutage neu anfangen ... ähm ... nee! Sorry.

Ihr wisst das alles wahrscheinlich nicht, aber ich rate Euch, Eure 
Entscheidung nochmal zu überdenken.

Ihr habt Euch für Standard-PC Hardware entschieden. Da könnt Ihr genauso 
gut Windows Standard Embedded nehmen (also quasi ein normales Windows 7 
im Inneren mit modularem Installer) und habt weniger Probleme mit 
Treibern in der Zukunft und seid mit der Entwicklung einfach deutlich 
schneller fertig.

Oder Linux oder x86 Android. Das gibts ja auch.

Zu Deiner konkreten Frage: kauf Dir ein Einführungsbuch. Du wirst es 
brauchen. Ist mir jedenfalls so gegangen. Einfach um die Zusammenhänge 
zu verstehen.

zB das hier. Ist zwar eines für die vorherige Version, aber so viel hat 
sich nicht geändert:

https://www.amazon.de/Professional-Windows-Embedded-Compact-7/dp/1118050460

Und CE heißt jetzt Windows Embedded Compact.

fchk

: Bearbeitet durch User
von Russe (Gast)


Lesenswert?

Hallo Frank,

Das Problem sieht folgendermaßen aus -wir brauchen ein Hard real time 
system auf dem Ethercat Master mit einem Zyklus von 125 usec läuft bei 
max jutter von 20% von diesen 125usec. Leider hat Microsoft nicht 
geschafft win 10 core echtzeitfähig zu machen. Wir haben bei uns 
Vxworks7 getestet aber der ganze process ist da sehr kompliziert. 
Ausserdem hatten wir vor Qt für die Visualisierung einzusetzen. Bei 
Vxworks macht es noch Haufen Arbeit Qt zu kompilieren. Mir liegt auch 
Visual Studio als IDE da ich mehrere Jahre auf der Arbeite. Auch solche 
Firmen wie Beckhoff setzen fast ausschließlich CE ein. Arm ist gut aber 
wegen oben genannten Anforderungen können wir den nicht einsetzen.

Gruss

von Russe (Gast)


Lesenswert?

Und Danke für das Buch

von Horst (Gast)


Lesenswert?

Russe schrieb:
> wir brauchen ein Hard real time
> system auf dem Ethercat Master mit einem Zyklus von 125 usec läuft bei
> max jutter von 20% von diesen 125usec. Leider hat Microsoft nicht
> geschafft win 10 core echtzeitfähig zu machen.

Ähm, nichts von MS war jemals Echtzeitfähig!?


Der normale Linux-Kernel ist aber gut in die Richtung. Da gibts diverse 
Distributionen die das anbieten.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Russe schrieb:
> Mir liegt auch Visual Studio als IDE

Dank VisualGDB schränkt Dich das nicht mehr nur auf 
Windows-Betriebssysteme ein. Damit kannst Du auch Programme für Linux 
(oder FreeBSD) auf der zugehörigen Hardware entwickeln und debuggen.

Such Dir irgendein Linux/Unix, für das es eine passende 
Realtime-Erweiterung gibt, und nutze das.

von Arc N. (arc)


Lesenswert?

Rufus Τ. F. schrieb:
> Russe schrieb:
>> Mir liegt auch Visual Studio als IDE
>
> Dank VisualGDB schränkt Dich das nicht mehr nur auf
> Windows-Betriebssysteme ein. Damit kannst Du auch Programme für Linux
> (oder FreeBSD) auf der zugehörigen Hardware entwickeln und debuggen.

Auch wenn ich VisualGDB mag, es geht mittlerweile auch ohne.
Visual C++ for Linux
https://marketplace.visualstudio.com/items?itemName=VisualCPPTeam.VisualCforLinuxDevelopment
Mit dem Creators Update (oder einem aktuellen Insider-Build) + VS2017 
wird's nochmal komfortabler
https://blogs.msdn.microsoft.com/vcblog/2017/02/08/targeting-windows-subsystem-for-linux-from-visual-studio/

(der "Vorgänger" war die Visual C++ for IoT Development-Erweiterung wo 
auch noch Mikrocontroller explizit erwähnt wurden 
https://marketplace.visualstudio.com/items?itemName=MarcGoodner-MSFT.VisualCforIoTDevelopment)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Danke für den Hinweis.

von Russe (Gast)


Lesenswert?

Danke für die Infos. Ich habe für mich wirklich viel Neues entdeckt.

Aber hier geht es nicht um ARM Prozessor sondern um i5 (ARM ist nicht 
genug leistungsfähig für die simultane Ansteuerung von 3 Achsen). Die 
Maschine soll auf die Baustelle mitgenommen werden und dort gehen die 
Leute mit ihr nicht besonders zimperlich um. Und um 17 Uhr wird der 
Stecker einfach weggezogen. Für Windows ist es natürlich tödlich.
Win CE hat diese Probleme nicht. Aber dank meinen Vorredner sehe ich 
dass CE auch in Zukunft nicht unterstützt wird. Also müssen wir entweder 
UVS anschließen, was an sich sehr viele Problemmen nach 5-6 Jahren für 
uns bereitet. Oder Eine RTOS Linux Distribution ansehen.

Video https://www.dropbox.com/s/w67yzy2odpi8mwn/20170124_084447.mp4?dl=0

Danke an Alle
Gruss

von Johannes S. (Gast)


Lesenswert?

Es gibt einen Bootloader loadcepc.exe mit dem man das Image per DOS 
starten kann, das ist erstmal eine einfache Methode: 
https://msdn.microsoft.com/en-us/library/ms930104.aspx
Das WinCE kann auch unter einem Hypervisor wie Acontis laufen, damit 
lässt sich Realtime + Windows Desktop auf einem PC realisieren.
Aber wie einige Vorredner schon sagten, der Support für WinCE ist mau 
und z.B. gerade bei Netzwerkkarten schwierig. Kleinste Änderungen in der 
Hardware kosten Wochen das in der Software auszubügeln. Das Fujitso 
Board ist eines der wenigen in deutscher Produktion, wenn die nicht mehr 
liefern hast du ein Problem. Alternative sind da evtl. die Beckhoff CX 
Hutschienen PCs, die bekommst du auch fertig mit CE Image.

von Bernd K. (prof7bit)


Lesenswert?

Russe schrieb:
> ARM ist nicht
> genug leistungsfähig für die simultane Ansteuerung von 3 Achsen)
> [...]
> Video https://www.dropbox.com/s/w67yzy2odpi8mwn/20170124_084447.mp4?dl=0

Ich lach mich schlapp. Ein ARM kann keine 3 Achsen steuern? Für das was 
in dem Video zu sehen ist reicht schon was aus Arduino-Klasse und mit 
Sicherheit so ziemlich jeder beliebige ARM Cortex.

: Bearbeitet durch User
von Frank K. (fchk)


Lesenswert?

Russe schrieb:

> Aber hier geht es nicht um ARM Prozessor sondern um i5 (ARM ist nicht
> genug leistungsfähig für die simultane Ansteuerung von 3 Achsen). Die
> Maschine soll auf die Baustelle mitgenommen werden und dort gehen die
> Leute mit ihr nicht besonders zimperlich um. Und um 17 Uhr wird der
> Stecker einfach weggezogen. Für Windows ist es natürlich tödlich.
> Win CE hat diese Probleme nicht.

Doch, auch bei CE kannst Du dieses Problem haben. Du kannst Dir nämlich 
so ganz einfach Deine Registry oder Dein Filesystem zerschießen.

Registry: Da gibts zwei Möglichkeiten
(a) Registry im RAM. Die wird beim Booten aus dem (readonly) binfs ins 
RAM geladen, und dann arbeitet das System damit. Man kann dann aber 
keinerlei Einstellungen in der Registry speichern, weil beim Ausschalten 
ist der RAM-Inhalt einfach weg, und beim nächsten Boot wird wieder ein 
frisches, unverändertes Original aus dem binfs geladen
(b) Hive-based. Hier ist die Registry im Flash. Damit kann man 
persistente Daten hineinschreiben. Wenn man das System aber nicht 
richtig herunterfährt, ist die Registry möglicherweise hinüber, und die 
Maschine bootet nicht mehr (worst case), oder sie versucht die Registry 
zu reparieren, schafft das nicht und schreibt eine frische 
Default-Registry hinein, wobei die ganzen Einstellungen dann natürlich 
weg sind (best case).

> Aber dank meinen Vorredner sehe ich
> dass CE auch in Zukunft nicht unterstützt wird. Also müssen wir entweder
> UVS anschließen, was an sich sehr viele Problemmen nach 5-6 Jahren für
> uns bereitet.

Windows Standard Embedded bringt spezielle Treiber mit, die einen 
Betrieb mit Read-Only Filesystem ermöglichen, ähnlich wie bei CE.

> Oder Eine RTOS Linux Distribution ansehen.
Entweder das, oder ein richtiges RTOS nehmen. Vxworks hast Du ja schon 
gesehen, QNX wäre vielleicht auch was für Euch.

fchk



>
> Video https://www.dropbox.com/s/w67yzy2odpi8mwn/20170124_084447.mp4?dl=0
>
> Danke an Alle
> Gruss

von technikus (Gast)


Lesenswert?

Frank K. schrieb:
> Windows Standard Embedded bringt spezielle Treiber mit, die einen
> Betrieb mit Read-Only Filesystem ermöglichen, ähnlich wie bei CE.


EWF heißt das Teil ;) Enhanced Write Filter

WinCE ist auch im Zusammenhang mit dem Visual Studio ein Krampf da:
- Verwendung von Compact Framework mit wesentlich weniger 
Funktionsumfang als z.B. .net framework 2
- Compact Framework nur bis visual Studio 2008 möglich

von Russe (Gast)


Lesenswert?

Vielen Dank für den Hinweis über Windows Embedded  Standard!
Forums ist eine Tolle Sache alles kann man doch nicht wissen. Vielen 
Dank an Alle die sich an den Antworten beteiligt hatten! Ich werde mich 
da tiefer erkundigen. Demnächst findet die Messe in Nürnberg statt und 
Microsoft  ist dort immer vertreten und erhoffe mir bißchen mehr 
Klarheit davor.
Gruss

von Russe (Gast)


Lesenswert?

Bernd K. schrieb:
> Russe schrieb:
> ARM ist nicht
> genug leistungsfähig für die simultane Ansteuerung von 3 Achsen)
> [...]
> Video https://www.dropbox.com/s/w67yzy2odpi8mwn/20170124...
>
> Ich lach mich schlapp. Ein ARM kann keine 3 Achsen steuern? Für das was
> in dem Video zu sehen ist reicht schon was aus Arduino-Klasse und mit
> Sicherheit so ziemlich jeder beliebige ARM Cortex.

Die Regelung an sich braucht in diesem Fall nicht wirklich viel. Aber 
Ethercatmasterprocess belastet i5 allein mit 17 %.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.