Showing posts with label Windows CE. Show all posts
Showing posts with label Windows CE. Show all posts

Thursday, March 27, 2014

Mutex, Semaphore and Spinlock

Some of the differences between Mutex and Semaphore in Windows CE

Mutex
  • Is used for Mutual Exclusion
  • It has either TRUE or FALSE state
  • It is possible that if a thread takes the Mutex, then the same thread can unblock on the same Mutex
  • Mutex implements Priority Inheritance

Semaphore
  • It can be either binary or counting semaphore
  • Each time the thread waits on semaphore the count is decremented, once the count reaches zero it can't unblock on the same semaphore even though it is owned by the same thread
  • Semaphore doesn't implements the Priority Inheritance

Spinlock
  • From Windows Compact 7 documentation it shows that spin locks are supported as they have added SMP support

Friday, January 18, 2013

How to flash images onto production hardware

This article discusses about the ways to flash binaries in production stage to hardware.

As of now I can think of three possibilities for updating binaries to Flash present on Hardware. 

SD Boot
  • Copy all the images to SD Card .
  • Implement boot-loader in such a way that whenever the system boots from SD Card to update the boot-loader images and Kernel image to Flash present on Hardware.
To have this feature the hardware shall support SD Card boot and the boot-loader shall support some file system handling code.

In this method at production stage the only requirement is one SD Card with production images copied onto it.

Using Platform Builder 

  • Flash the boot-loader images onto hardware using JTAG
  • Disconnect the JTAG and boot from Flash. 
  • Connect the hardware using ethernet cable or USB cable.
  • Download the image from Platform builder onto target and flash it.
The drawback of this is at production stage Host PC shall be supplied with Platform Builder Installed and expensive JTAG's might need to be purchased. More over the flashing procedure is a two step procedure.

Using CEDownloader
  • Flash the boot-loader images onto hardware using JTAG
  • Disconnect the JTAG and boot from Flash. 
  • Connect the hardware using ethernet cable or USB cable.
  • Instead of PB the user can install CEDownloader utility (Search for it in Google / Sourceforge.net)
In this method installation of PB onto production Host PC can be avoided.


Happy Flashing.