Tuesday, October 14, 2008

Flash back to Windows CE .Net 4.2

Last few weeks I have been involved into a customer project running Windows CE 4.2…. Woooaa a big jump in the past. I don't know if you were already involved in Windows CE at this time, but a big gap is visible between this version of Windows CE and the latest one… Thanks to Microsoft for all those improvements… Connectivity options was Configure Remote Connection… so i took me 10 minutes to find the right menu, as every thing change… But one thing that I found really surprising is the time spent to do a sysgen under Windows CE 4.2 with the most up-to-date development Platform. It took me only 10 minutes, while it was around 40 minutes on the best computer available at the release of Windows CE 4.2… oups I should say Windows CE .Net 4.2, the time when the .Net revolution starts :-).

The KITL over serial implementation give me a big headache, as at the time of Windows CE 4.2 the frames sent and received by the target where created and checked by the OAL itself before forwarding them to the upper layer of KITL… meaning that you had to know exactly the format of the frames sent and received by Platform Builder, otherwise the default KITL over serial implementation of Platform Builder was not able to communicate with the target. You can imagine that finding this information is not so easy as the MSDN documentation at this time was not so complete as it is now. But thanks to free sample BSPs, and to my favorite web search engine , I found my grale : "The definition of the KITL frames".

So as an archive for the Windows CE community here is the KITL header definition for Windows CE 4.2 : Header - Data - Trailer

typedef struct _SERIAL_PACKET_HEADER
{
UCHAR headerSignature[HEADER_SIGNATURE_BYTES];
UCHAR pktType;
UCHAR Reserved;
USHORT payloadSize;
UCHAR crcData;
UCHAR crcHdr;
} SERIAL_PACKET_HEADER;

With :
  • headerSignature : the signature of the header : { 'k', 'I', 'T', 'L' }
  • pktType : use by KITL to identify the service associated to the frame
  • payloadSize : packet data size, not including this header
  • crcData : packet data check sum (simple, 8-bit crc)
  • crcHdr : header data checksum (simple, 8-bit crc)

The simple 8 bits check sum algorithm :
UCHAR ComputeChecksum(PUCHAR pBuf, USHORT len)
{
USHORT s = 0;
UCHAR csum = 0;

for(s = 0; s < len; s++)
csum += *(pBuf + s);

return csum;
}


- Nicolas

Wednesday, October 1, 2008

FTF EMEA 2008


I will present on the Microsoft booth at the Freescale FTF EMEA 2008 that will take place October 7th in Paris. If you get a chance to come, it will be a great pleasure to exchange with you about the Microsoft Embedded Technologies.
If you didn't register yet, follow this link. See you then.

- Nicolas

Wednesday, September 17, 2008

Exam Preparation Kit in foreign languages available for download

The Exam Preparation Kit book (link) for the Microsoft Certification for Windows Embedded CE 6.0 is available for download in the following languages:

  • English
  • French
  • German
  • Simplified Chinese
Other languages will be soon available for download.

- Nicolas

Adeneo delivers Windows Embedded CE training course with FREE development kits

Adeneo announced the planning for the next training session in the USA.

  • Seattle, WA – Sept 22nd to 26th 2008
  • Dallas, TX – Nov 17th to 21st 2008
  • Los Angeles, CA - Feb 16th to 20th 2009
  • Boston, MA - Apr 13th to 17th 2009
  • Denver, CO - Jun 8th to 12th 2009
  • Seattle, WA - Sept 21st to 25th 2009
  • Dallas, TX - Nov 16th to 20th 2009
Content: Microsoft official Windows Embedded CE 6.0 training with labs done on ARM based development kit
Cost per attendee: $2,500
Included in price:
  • 5 days of instructor led training on Windows Embedded CE 6.0. The training is delivered by one of our Senior Windows Embedded Developers who has the highest level of technical expertise on Windows Embedded CE - Training materials (printed manuals and a CD with all training manuals and files needed to complete the different labs)
  • Complete ARM based development kit which attendees can keep after the training session ($975 value)

Registration and information: Please contact contact.msembedded@adeneocorp.com
- Nicolas

Thursday, August 14, 2008

SQL Compact 3.5 SP1

The SQL Compact 3.5 SP1 has been released few weeks ago for Windows Mobile and was accessible only as a cab file for the Windows CE platforms. Now with the July's Windows CE QFE a component has been added to the catalog to give you a chance to easily integrate this feature inside your runtime images.

CE 6.0 July Update 2008 (includes SQL Compact 3.5 SP1)
CE 5.0 July Update 2008 (includes SQL Compact 3.5 SP1)

- Nicolas

Windows CE 6.0 MCTS Exam - Companion CD

I'm receiving lots of email asking me about the Windows CE 6.0 MCTS companion CD that illustrate the different labs of the MCTS exam book. Microsoft had to delayed the delivery of the CD as we get more work to do for the translation in the 6 different languages of the book.
This translation is nearly done and the release of those books will be grouped to the access to the companion CD.

- Nicolas

Thursday, July 31, 2008

Registry Modifications Notifications

The Windows CE registry is a good place to store applications, users settings. Those information are shared between the different processes running on the system, so content can be modified from every where.
One concrete exemple, is the backlight control panel applet that allows user to change the different timeout for switching off the screen when user inactivity is detected.So when user make changes using this applet, registry content is modified to reflect the changes. At this time, if a backlight driver exist for the platform, this driver have to update his internal timers according to the new values.
You can imagine the same mecanism between your applications and a driver, two drivers or two applications. In this case, you have to be notified when modification are done in this registry. Use the CeFindFirstRegChange,CeFindNextRegChange, CeRegGetNotificationInfo, CeRegTestSetValueWand and CeFindCloseRegChange functions for this.

- Nicolas