Tuesday, July 20, 2010

Windows CE: where to start?

Well, This post will be useful for beginners.

If you don't know anything about windows CE, read it on wikipedia.com

Here are the videos by microsoft which will help you to get deep into it.


Recently, Windows CE R3 released.

Also, Microsoft released the Windows Embedded Compact 7, this is next verison of windows CE, that we can also refer as Windows CE7.

This will be used as backbone in Windows Phone 7.

Tuesday, April 7, 2009

Developing Embedded Software in C

The link below is the good starting point for who are new to embedded Software.
http://users.ece.utexas.edu/~valvano/embed/toc1.htm

Tuesday, March 3, 2009

How to Implement KITL.

If you decide to enable KITL in your OS design, inside OEMInit, you tell kernel to start KITL:
KITLIoctl(IOCTL_KITL_STARTUP,NULL,0 NULL, 0, NULL);

The kernel will load the KITL components and call OEMKitlStartup() right away to let the KITL library know it has been started.

When it comes time for KITL to actually be used to communicate with desktop side, kerlnel will call:
OEMKitlInit(KITL_TRANSPORT *pTransport);
The argument to this function is address of a KITLTRANSPORT structure you fill in the details of your transport.

The kernel has no idea what kind of transport you are using or how the transport operates. All it knows is how to use your function pointers and the data you provided in the structure

TO NOTE:
=> KITL does *not* use a device driver. -Trnasport and the code that talks to the "hardware port" is build in to KITL.

-Typically hardware used for KITL is not available in the OS. (there are exceptions ethernet via V-Mini).
=> KITL can start to work before the system begins doing multithreaded pocessing.
=> KITL can be 'passive' or 'active'.

-'Passive' means 'not started yet'.
-Calling KITLIoctl(IOCTL_KITL_STARTUP) does not have to happen during OEMInit() and can occur later if necessary.
-Passive KITL can be stopped as well.
=> KITL can use polling or work off an interrupt.

-Polling is slower and does not allow near-instantaneous user initiated breaks.
-Polling is ususally implemented first to facilitate early system debugging before peripheral interrupts are enabled.