Forum: Mikrocontroller und Digitale Elektronik OS für Atmel-Entwicklerboard: Welche Vor-/Nachteile hat Linux gegenüber WinCE?


von Michael M. (msteinweber)


Lesenswert?

Hallo,

Ziel ist es, auf einem Entwicklerboard einen schlanken 
Audio-Streaming-Client laufen zu lassen. Dieser empfängt das Signal per 
Ethernet und gibt dieses dann über die Audio-Ports aus.

Des Weiteren soll auf dem Board ebenfalls ein Webserver laufen. Bei 
Linux ist meistens schon LightHTTPD vorkonfiguriert. Wie stehen die 
Chancen, mit WinCE einen Webserver aufzusetzen?

Folgendes Board hätte ich vorgeschlagen:
http://www.samicc.com/2010/0521/mbs-sam9261x.html

Das Programmieren mit C/C++ unter einer Windows-Umgebung beherrsche ich 
sehr gut. Daher würde meine Wahl primär auf WinCE als OS fallen.

Laut der Übersichtstabelle jedoch sind für Linux eine Menge Libraries 
aufgelistet (Dateisystem-Operationen, Netzwerk, usw.). Wie steht es um 
die Leistungsfähigkeit bei WinCE?

Ist es theoretisch möglich, mit der Betriebssystem-API Zugriff auf den 
Audio-Port und die Netzwerk-Sockets zu bekommen?

Vielen Dank!

von Selma (Gast)


Lesenswert?

WinCE? Gibts das überhaupt noch? Ich war der Meinung, das wäre schon 
lange ausgestorben...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn Du selbst noch nicht Entwicklungserfahrungen mit Windows CE hast, 
dann mach einen Bogen um  Windows CE.
Das unterscheidet sich ausreichend deutlich von "normalem" Windows, daß 
der Aufwand, für ein komplett anderes OS entwickeln zu lernen, sich 
lohnt.

Vor allem, wenn Du als Grundlage für Deine Arbeit eine 
plattformunabhängige Klassenbibliothek verwendest, wie z.B. Qt oder 
wxWidgets. Beide eignen sich sowohl für die Entwicklung für (und auf) 
Windows und für (und auf) Linux.

http://qt.nokia.com/
http://www.wxwidgets.org/


Hinzu kommt, daß man Windows CE nicht mal eben so schnell auf 
irgendeinem System zum laufen bekommt, ähnlich wie bei Windows XP 
embedded (oder den neueren Embedded-Varianten) ist das System mit einem 
"plaform builder" aus einem Haufen von Komponenten und Devicetreibern an 
die gewünschte Hardware anzupassen. Dieser "platform builder" ist für 
einen Privatanwender ein nicht zu unterschätzender Kostenfaktor, 
zumindest der für XP kostet um die 1000 EUR und erfordert die 
Unterzeichnung eines dicken Lizenz-Vertragwerkes mit Microsoft.

Du hast Entwicklungserfahrungen "in C/C++" unter Windows. Solltest Du 
damit echtes C++ mit z.B. der MFC gemeint haben, dann solltest Du Dir 
wxWidgets näher ansehen, das ist für Leute mit "MFC-Denke" keine absolut 
gigantische Umstellung.
Qt ist etwas anders strukturiert und --nach meiner Einschätzung-- für 
Leute mit MFC-Erfahrung etwas schwieriger im Zugang.

Wenn Du hingegen mit der .Net-Perversion "Managed C++" bzw. "C++/CLI" 
gearbeitet hast, dann kannst Du das theoretisch auch weiter machen, und 
die .Net-Resultate mit Mono unter Linux zum Laufen bekommen.

Sowohl Qt als auch wxWidgets sind keine reinen GUI-Toolkits, sondern 
enthalten auch plattformunabhängige Abstraktionen von Dateizugriffen, 
Netzwerkaktivität etc.

Daß Audio-Anwendungen mit wxWidgets entwickelt werden können, beweist 
der Audio-Editor Audacity. Das ist vielleicht auch ein ganz guter 
Ausgangspunkt für Forschungen, wie Audiowiedergabe etc. abzuwickeln ist.

http://audacity.sourceforge.net/

von Hans-Georg L. (h-g-l)


Lesenswert?

Du brauchst für Windows CE den Visual C embedded Compiler und wenn du 
kein fertiges CE für das Board hast noch den Platform Builder.

Bei Visual 2005 ist alles dabei, aber ohne Builder und nicht in der 
freien Version.

Visual C 2005 professionell + Windows Windows Embedded CE 6.0 R2
mit dem Platformbuilder bekommst du für private Zwecke mit zusätzlicher 
ARM-Hardware für 149,94 Euronen hier:

http://www.keith-koep.com/spark/spark.html

Die Software kostet alleine normalerweose über 2000 Euronen.

von Matthias B. (mabl)


Lesenswert?

Wenn du Audio von einem Rechner auf dein Board streamen willst (im 
Prinzip also ein Lautsprecher über Ethernet), dann schau dir mal 
PulseAudio an (http://pulseaudio.org/).

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Warum willst du das machen, was ist das Ziel?

Anforderungen hast du einige definiert. Lösungsansätze hast du auch. 
Einen zu Hardware und zwei zu Software.

Aber das ZIEL ist unscharf. Bearbeitest du ein Einzelexemplar just aus 
Jux oder planst du was größeres?

Wenn ersteres: So etwas ähnliches mache ich mit einem Second-Hand Linux 
PDA (Zaurus). Audiostream (Internetradio) über WLAN an den Z und Ausgabe 
über Audio-Out an die Stereoanlage. Geschrieben in Python. Es gibt 
Berichte wie man einen Webserver lighttpd auf den leistungsfähigeren Z 
(PXA255, 400 MHz, 128 MB Flashspeicher) einrichtet. Habe aber keine 
eigenen Erfahrungen dazu.

Wenn letzteres: Komplett aussen vor ist bei dir noch das Thema 
Lizenzgebühren. Windows CE OS kostet pro Endgerät plus die 
Entwicklungsumgebung. "Audiostreaming" Decoder Lizenzen kosten u.U. 
(MP3, WMA) auch pro Endgerät. Wäre so etwas in der CE Lizenz schon drin?

Wie-warme-Semmeln-gehende Alternativen wie Android oder iOS betrachtest 
du auch nicht.

von Michael M. (msteinweber)


Lesenswert?

Hallo rufus,

vielen Dank für Deine sehr ausführliche Antwort. Die von Dir 
angesprochenen Libraries, insb. wxWidgets sind mir hinreichend vertraut, 
wir entwickeln damit zahlreiche Applikationen.

Ich arbeite als Softwareentwickler in unserer Firma, welche das von mir 
angesprochene System nach der Entwicklungsphase kommerziell vertreiben 
wird. Die Idee mit wxWidgets als Bibliothek für Socket-, Audio- und 
Dateisystem-Operation ist sehr gut. (Bleibt nur noch das 
Lizenzproblem...)

Angenommen also, ich baue auf das vorinstallierte Linux. Der Zugriff auf 
Linux würde nur per Kommandozeile stattfinden. Hier habe ich 
grundlegende Kenntnisse. Ist die Übertragung von wxWidgets auf das Board 
tatsächlich möglich? Und in welchem Umfang kann wxWidgets die Linux-API 
nutzen?

Ich ging bisher davon aus, dass es sich bei Embedded-Linux-Versionen um 
sehr abgespeckte APIs handelt, an den Einsatz einer so umfangreichen 
Bibliothek wollte ich erst gar nicht denken, deshalb meine Skepsis...

Danke im Voraus für Deine Hilfe!

von Michael M. (msteinweber)


Lesenswert?

Hallo Stefan,

Ich gebe Dir voll und ganz Recht, wir müssen uns selbstverständlich auch 
mit den Lizenzbedingungen der einzelnen Komponenten auseinandersetzen.

Anfallende Lizenzgebühren jedoch sind in unser Budget mit eingeplant und 
sind an dieser Stelle weniger das Problem.

von Εrnst B. (ernst)


Lesenswert?

Michael Müller schrieb:
> Ich ging bisher davon aus, dass es sich bei Embedded-Linux-Versionen um
> sehr abgespeckte APIs handelt, an den Einsatz einer so umfangreichen
> Bibliothek wollte ich erst gar nicht denken, deshalb meine Skepsis...

Das "embedded" im "Embedded-Linux" bezieht sich nur auf den Einsatzort.
Die Kernel-APIs sind die gleichen wie beim "Desktop-Linux" und 
"Server-Linux".
Gibt natürlich Unterschiede in den Verfügbaren bzw Vorinstallieren 
Bibliotheken und Programmen.

Brauchst du überhaupt eine GUI auf dem Gerät, oder reicht das 
Webinterface?

Ich würde das ganze zwei- bzw drei-teilen:

Das reine Abspielen erledigt der MPD:
http://de.wikipedia.org/wiki/Music_Player_Daemon
http://mpd.wikia.com/wiki/What_MPD_Is_and_Is_Not

Der MPD kriegt seine Kommandos vom Webserver, dort von (Binär-)CGI, 
eigenem modul, oder PHP/Perl. Je nach verfügbarer und benötigter 
Performance.

Und wenn das Teil noch ne Gui/Tasten/Fernbedienung kriegt: Diese senden 
auch einfach Kommandos an den MPD.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Michael Müller schrieb:
> (Bleibt nur noch das Lizenzproblem...)

Exakt welches?
1
The licence for wxWidgets means that anyone can use it, 
2
for proprietary or open source (and GPL'ed) software.
1
The wxWindows Licence is essentially the L-GPL (Library General 
2
Public Licence), with an exception stating that derived works 
3
in binary form may be distributed on the user's own terms. 
4
This is a solution that satisfies those who wish to produce 
5
GPL'ed software using wxWidgets, and also those producing 
6
proprietary software.

(Quelle in beiden Fällen www.wxwidgets.org)

Michael Müller schrieb:
> Ich ging bisher davon aus, dass es sich bei Embedded-Linux-Versionen um
> sehr abgespeckte APIs handelt

Das ist die Frage, was Du unter "embedded linux" verstehst, und welche 
Anforderungen wxWidgets an das zugrundeliegende Linux stellt.

So arg scheint es nicht zu sein, da wxWidgets auch auf kleineren 
Systemen als "full-fledged workstation" läuft:

http://www.wxwidgets.org/docs/embedded.htm

von Michael M. (msteinweber)


Lesenswert?

Hallo Ernst,

super, vielen Dank. MPD ist meiner Einschätzung nach eine sehr passende 
Option für uns. Damit würde der unnötige Overhead einer umfangreicheren 
Bibliothek entfallen.

Eine GUI wird nicht benötigen, das alles läuft über's Webinterface. Der 
Systemzugriff erfolgt dann von PHP aus.

von Michael M. (msteinweber)


Lesenswert?

Sorry, rufus, bei der Lizenzfrage habe ich offensichtlich etwas 
durcheinander gebracht. Danke jedenfalls für den Tipp mit wxEmbedded, 
das würde den Einsatz von wxWidgets natürlich erheblich erleichtern.

von Ach ja (Gast)


Lesenswert?

> Dieser empfängt das Signal per Ethernet und gibt dieses dann über die
> Audio-Ports aus.

Vor ein paar Tagen habe ich ein billige Internet-Radio 
auseinandergenommen. Das machte im Grunde natürlich genau das.

Das Betriebssystem war ein Embedded Linux mit mplayer zur Ausgabe. Alles 
auf einer billigen chinesischen MIPS-Plattform (Ingenic Xburst mit 
integriertem Media-Prozessor, http://en.ingenic DOT cn/ ).

Das Radio ist im Handel für 89 Euro erhältlich. Bei solchen Preisen 
würde ich mir eine Eigenentwicklung überlegen und eventuell einfach auf 
ein billiges, fertiges Internet-Radio setzen.

von Michael M. (msteinweber)


Lesenswert?

Die Idee mit einem Internet-Radio haben wir auch bereits aufgegriffen. 
An sich eine super Sache, nur benötigen wir darauf auch noch einen 
Webserver. Denke nicht, dass es klappen würde, z.B. LightHttpd incl. PHP 
auf dem Radio laufen zu lassen.

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.