Ik heb het hier eerder gehad om een display aan te sturen. Omwille van de tijd ga ik hiervoor een arm9 gebruiken met geheugen, namelijk deze http://www.karo-electronics.de/index.php?id=48

Omdat de software steeds geavanceerder wordt wil ik Windows ce gaan gebruiken of Linux. Dat is dus de vraag.

Van linux heb ik trouwens nog geen kaas gegeten.

Ik weet uit ervaring dat het programmeren in windows erg gebruiksvriendelijk is, maar hoe zit het bijvoorbeeld met de mogelijkheid om nieuwe drivers te schrijven?

De voor- en nadelen die bij mij bekend zijn:

Windows CE
+Gebruiksvriendelijk

-Licentiekosten

Linux
+flexibeler ?
+geen licentiekosten

Hoe zit het trouwens met de snelheid, is dat ongeveer gelijk?

Ik hoop dat jullie mij meer kunnen vertellen.

Voorop gesteld, ik heb geen ervaring met het programmeren voor Windows CE. Linux heb ik ervaring mee, als server, desktop en embedded realtime software (2 projecten).

Hoe wordt het display aangestuurd? Moet je de timing zelf instellen, of gebruik je de vga aansluiting van het bordje?
Wat komt er op het display te staan? (Flash, video, gewoon wat tekst?)

Onder Linux ontwikkelen heeft als voordeel dat je redelijk veel op je desktop kunt ontwikkelen en de software daarna op je target kunt zetten, dat zal je ontwikkeltijd waarschijnlijk wel verkorten..

Dit is het display http://www.hitachi-displays-eu.com/doc/TX17D01VM2CAA.pdf

Het wordt dus niet via de vga aangestuurd. Voor dit soort display zit in de arm al hardware ingebakken.

Dit display zal uiteindelijk ook gebruikt worden om gps landschappen te laten zien. Anders had ik een simpeler display genomen.

Maar heeft linux bijvoorbeeld niet standaard drivers voor dit soort display?

vergeet niet dat windows CE niet te vergelijken is met welke andere vorm van windows dan ook.
Het is niet een kwestie van drivertjes installeren.
Je moet van te voren met een speciale ontwikkelomgeving een ROM builden voor een CE bordje waar alles al in zit.
Omdat er zoveel specifieke embedded hardware is, moet je veel drivers zelf schrijven in C++.
Het is niet in de zin van Windows CE installeren, en vervolgens drivertje voor lcd installeren.
Een applicatie schrijven in .net voor windows CE is daarintegen wel weer wat eenvoudiger.

ervaring met Linux heb ik niet.

Dat had ik ook wel verwacht dat het niet precies hetzelfde is.

Maar ik had wel een driver verwacht voor een tft, waarbij je bijvoorbeeld in de header file de pinnen insteld waar het display op zit en de resolutie enz.

Maar hoe moet ik dat zien met ROM, is dat zoiets als een de flash van een kleinere microccontroller ?

Ik begrijp uit je verhaal dat als je alle drivers bij de hand hebt is het gemakkelijk programmeren in een .net omgeving. Dat is weer gemakkelijk.

Geen idee of je de driver zo kunt downloaden, daarvoor zul je even contact op moeten nemen met de fabrikant. Heb even gezocht, ik kwam zo niets tegen met de gegevens uit je datasheet.

De rom is 128 MByte NAND Flash memory, dat kun je dus zien als je flash van een uc. Dit gaat nog wel een stukje verder, onder linux zie je dit als een block-device, en kun je hem benaderen alsof het een harddisk is. Grote kans dat het zelfs geen read-only disk is, en je er zelf gewoon op kunt schrijven.

Misschien nog een extra keuze. Micro .net
Zijn klein boardjes waar een gestripte versie van het .net framework op draait. Het voordeel is dat deze al TCP/IP hebben ingebouwd en dat je kan bouwen/deployen en debuggen vanuit visual studio.

Voorbeeld boardje: http://www.ghielectronics.com/product/107

Als je toch richting betalende os'en gaat, kun je mogelijk ook VxWorks overwegen. FreeRTOS is een goede keuze voor een real time os.

De rom is 128 MByte NAND Flash memory, dat kun je dus zien als je flash van een uc. Dit gaat nog wel een stukje verder, onder linux zie je dit als een block-device, en kun je hem benaderen alsof het een harddisk is. Grote kans dat het zelfs geen read-only disk is, en je er zelf gewoon op kunt schrijven.

Heel belangrijk dat je hiervoor een flash file system zoals jffs2 gebruikt. Met vfat of ext3 werkt het ook wel, maar je flash chip slijt veel sneller dan nodig.

[Bericht gewijzigd door Uranium op (65%)]

Voor een project @ school heb ik het eea gedaan met een Beagleboard in combinatie met OpenEmbedded. Met bitbake kun je dan een image maken waar de onderdelen inzitten die je nodig hebt. Zodra het image klaar was (en uur of 8 + 40-60GB harddiskruimte verder) was het image (van een aantal mb's groot) klaar. Die kon je op een sd-kaart zetten en je had je systeem werkend.

Daarna was het mogelijk om via de package-manager andere software te installeren zoals firefox :+, wat nog best goed draaide :).

Bovenstaande is absoluut niet makkelijk, met een man of 6 hebben we er zeker 2 maanden over gedaan voordat dit goed werkte. Ons doel was een QT-app direct op de framebuffer te laten draaien ipv via X11.

Overigens hebben we ook wat andere dingen geprobeerd. Een variant van Ubuntu hebben we draaiend gehad en ook Android. Die embedded variant van Ubuntu was in feitte een kant en klaar systeem en niet echt embedded meer te noemen. Android geeft je geen toegang tot hardware (I/O's), vandaar dat dat voor ons project ook geen optie was.

Als je interesse hebt, dan heb ik nog wel wat tuturials om Open Embedded aan de gang te krijgen.

Overigens, wat betreft snelheid, ik heb een embeddedlinux systeem via interrupts een stappenmotor zien aansturen :P. Als je weet wat je doet dan is het best mogelijk om een heel eind real-time dingen voor elkaar te krijgen. Moet het beter dan dat, dan kun je misschien beter naar een FPGA icm een softcore kijken. Realtime-dingen in hardware afhandelen, rest via software.

[Bericht gewijzigd door Anoniem op (14%)]

Realtime linux is best krachtig. Voor een school project hadden we een 4 takt grasmaaier motor draaien op een realtime os. Missende puls detectie etc, alles in software. Werkte redelijk, en nog genoeg cpu tijd over voor een webserver met php etc.

Was zeer zeker geen snelle machine, vergelijkbaar met P3 geloof ik.

Dit soort projecten is niet echt simpel als je zelf alles moet doen, zoals M14 al aangaf.

Een van de problemen zijn om een bsp (board support package) te maken voor zowel Windows CE en Linux zodat het image stand-alone kan werken.

Even verder met Linux:
Verder is het belangrijk dat ook het filesysteem op de juiste manier op het bordje terecht komt, wat readonly kan zijn stop je in flash, het /tmp filesysteem maak je bijvoorbeeld in RAM etc.

Dit hele proces van alle juiste spullen bij elkaar sprokkelen (zoals deamons, tools, applicaties) en daar een downloadable image van maken (cross compiler is nodig voor target) is al gemaakt door het bedrijf waar ik werk. En daar zijn de nodige manjaren in gestoken!

Hier worden al deze stappen (op een linux desktop) gedaan voor het target platform. Deze bouwt een image in een tiental minuten voor een compact flash!

Dit is de EQSL (Embedded quick start linux) CD van PTS Software (tegenwoordig Alten-PTS):
http://www.eqsl.pts.nl/ (Ondertussen al aan versie 2.0 beland.)

P.S. Alles werkt met de originele open source code, dus nieuwere versies daarvan zijn relatief makkelijk te integreren.

Vraag anders even de CD aan, die krijg je gratis thuisgestuurd en kun je er eens mee spelen.

Allemaal nieuwe termen voor mij, in jullie verhalen. En ook keus genoeg.

Hierin heb ik nog heel wat te leren, maar wel weer een mooie uitdaging.

Ik krijg bij de module die ik noemde een starters kit met cd-rom die zal ik eerst proberen. In iedergeval bedankt voor de antwoorden.

@m14 Ik heb weleens een stappen motor met een plc aangestuurd, deze draaide toen niet zo snel meer.

@Roela
Ik ben ook bezig met een ontsteking voor een kart, waarbij de voorontsteking via de pc instelbaar is. Kom wel wat bij kijken :)