I've been having a play with Microwindows myself recently, and since a few people have asked about it, I thought I'd share my experiences.
As identified by GLecordier, the tricky part is writing your own screen, mouse and keyboard drivers. However as a rule, these aren't particularly complicated devices and the example drivers for the IPAQ that come with eCos serve as a good starting point. You may also want to consider using the supplied VNC drivers for your initial testing.
Having put together some simple drivers, I found that Microwindows works pretty much out of the box. All you have to do is add in the microwindows component and all components it depends on (I'd recommend using the "net" template as a starting point).
To build the example application, you should go to the Microwindows package in configtool and tick "Build MicroWindows eCos support" and in the sub- menu for that option, tick "Build compete eCos+Microwindows application". You should also tick the "Build MicroWindows NanoX demos" option, and the "Include 'nano-tetris' demo" box.
Having done that, an executable elf file will be generated when you build your project in configtool.
You may also want to configure the window manager to use framed rather than solid window moves. You can do that by adding the compiler flag: -DOUTLINE_MOVE to the MicroWindows build options in configtool.
However using this option causes problems with window refresh. You can fix that by editing the file: srvfunc.c and in the function GrMoveWindow, change the lines:
/*** move algorithms not requiring unmap/map ***/# if 1
/* perform screen blit if topmost and mapped - no flicker!*/
to :
/*** move algorithms not requiring unmap/map ***/# if 0
/* perform screen blit if topmost and mapped - no flicker!*/
Window moves will then work fine.
The more adventerous of you may want to try using Microwindows version 0.90 rather than 0.89 (which is what ships with eCos). This is available for download from the microwindows website (
http://www.microwindows.org/). Some configuartion work will be required.
Also, if you want to use microwindows, but don't require networking, you may be able to reduce code footprint by using message queues rather that sockets for client-server communication within Microwindows. A preliminary port of Microwindows which works this way is available for download from i-jui sung (
http://www.csie.nctu.edu.tw/~ijsung/microwin-ecos/).
I haven't personally tried these ports, but if you do, please post back your experiences. I'm certain that there are people on this forum (myself included) who would be intererested to hear the results.
http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/smile.gif