Wednesday 30 September 2009

Windows Embedded CE 6.0 R3 Training in Erlangen - Reminder

EB - Windows Embedded Gold and Training Partner - is offering a Windows Embedded CE 6.0 R3 Training course from October 13th - October 14th in Erlangen / Germany.

Whether you would just like to get a basic overview of Windows Embedded CE or if you prefer a "dive in the deep end", this course will provide you with a valuable insight on building an image, developing drivers and writing applications. Moreover it will give you the possibility to learn best practices by "chatting" with the experts.

This training will be held on real Hardware, namely the Keith & Koep i-PAN7 which you can take home with you at the end of the deep dive training!


In Addition you will also receive a free copy of the book "Windows Embedded CE 6.0 Fundamentals".

So don’t lose any time and simply register at the EB registration site here. Hope to see you there!

Have fun!

Read more! Post this to a friend!

Windows Embedded CE 6.0 R3: Using Silverlight for Windows Embedded

Hi all,

in my previous post I promised to talk a little bit more about how to use Microsoft Silverlight 2 and the C++ based application development framework, which is called “Silverlight for Windows Embedded” on your Windows Embedded CE 6.0 R3 device.

First of all, you need to add support for Silverlight for Windows Embedded to your OSDesign. To do this you have to include the SYSGEN_XAML_RUNTIME variable to your OSDesign and rebuild your system.


If you also add the Silverlight for Windows Embedded sample application called “XamlPerf” (SYSGEN_SAMPLEXAMLPERF which is not available as a catalog item but needs to be set nevertheless in order to build the XamlPerf sample application) or the new “Internet Explorer 6.0 XAML UI Sample Browser” (SYSGEN_IESAMPLE_EXR) catalog item to your OSDesign, you already have sample programs that you can run on your device and examine.


The source code for the XamlPerf sample application and the XAML UI sample browser is located under _PUBLICROOT\COMMON\OAK\DEMOS\XAMLPERF and _PUBLICROOT\IE\OAK\IESAMPLE_EXR respectively.

Note: I will talk about XamlPerf and the new IE in separate posts, so stay tuned!

Now you have successfully included support for Silverlight for Windows Embedded to your platform and you are now ready to develop your Silverlight for Windows Embedded application as a subproject in your OSDesign.

The next step would be to think about whether or not you want to define the visual scene using a source XAML file. If so, you can either create that file by using Microsoft Silverlight 2 XAML, Microsoft Expression Blend 2 (Evaluation Version: http://download.microsoft.com/download/2/7/9/2798d28c-72b3-4231-a996-d9a7f1d56166/Blend_Trial_en.exe), or by programming XAML directly.

You should also think about which type of application based on Silverlight for Windows Embedded you want to build. Therefore it is necessary to identify (and of course add to your OSDesign) any additional SYSGEN variables and header files needed to build that particular application.

Once you have successfully created and built your OSDesign as well as established a connection from PlatformBuilder to your target device, you are ready to implement your actual Silverlight for Windows Embedded Application!

Valter Minute wrote a good tutorial on his blog about how to design a basic UI in Expression Blend 2, load it inside an application and interact with it.

For further information, have a look at the Windows Embedded CE 6.0 R3 help: “Create a Silverlight for Windows Embedded Application”.

Have fun!
Read more! Post this to a friend!

Windows Embedded CE Live Chat (September)

Hi folks,

just in case you missed a very interesting Windows Embedded CE Live Chat today, you can find the transcript of today’s chat here.


msft_davbo (Moderator): We are pleased to welcome our Experts for today’s chat. I will have them introduce themselves now.
Let’s begin the chat!

msft_davbo (Moderator): Prince - this is a tech chat for Windows Embedded

Damon Barry [MS] (Expert): Hello, I'm Damon Barry from the Multimedia team.

masatos_MSFT (Expert): Hi, I'm Masato Sudo from the Applications team

FBLANQ_MSFT (Expert): Hello, I'm Francisco Blanquicet from the CoreOS/BSP team.

mskim_MSFT (Expert): Hello, this is Myungsub Kim from Windows CE JDP (PRT) team.

rajran[MS] (Expert): Hi, I am BSP PM in Core team.

Travis Hobrla [MS] (Expert)[18:06]: Hi, I'm Travis Hobrla, a developer on the BSP/CoreOS team.

Sue Loh [MS] (Expert)[18:06]: Hi, I'm Sue Loh, a developer on the Platform Builder remote tools team, with previous kernel & file system experience. I hope we can answer some of your questions today!

RajeevDubey[MS] (Expert)[18:06]: Hi, This is Rajeev Dubey, Windows CE Bluetooth PM

RajeevDubey[MS] (Expert)[18:17]:

Q: [5] (redoing for the experts) I think this is for Rajeev...is there anything you can say about the Bluetooth Core Specification Addendum 1 (CSA1) for Core revision 2.1? Or support of 3.0? This is needed for support of the Health Device Profile

A: Hi Len, at present, CE does not provide Health Device Profile. However, CE Bluetooth stack is extensible and an OEM can add newer profiles and associated stack extensions.

masatos_MSFT (Expert)[18:18]:

Q: [4] Which Compact Framework version is in ROM on Windows Mobile 6.5 devices?

A: Unfortunately, we cannot comment on products, like WM6.5, that has not shipped yet. Thank you for your question though and I would be happy to follow up with you next time when WM6.5 officially releases

AlexBu_MSFT (Expert)[18:18]:

Q: [3] Hello, I'm using Windows CE 5.0 and have question about application debugging with PB. Are there any limitations about the size of the PDB file? In my case, the breakpoints will be ignored in PB during the debug session.

A: Hi Harald. What is the size of your PDB file?

Sue Loh [MS] (Expert)[18:20]:

Q: [1] Hello experts, about FlashMDD. Besides the MSDN topic on MDD/PDD driver, and the sample in FMDMDDWRAPPERPDD sample, is there additional documentation that we can have access? I am having trouble to configure more than one non contiguos region in this model

A: [From Vadim Yushprakh] What do you mean by "more than one non contiguious region"? The MDD supports multiple regions, however each region represents a contigous range of blocks.

masatos_MSFT (Expert)[18:21]:

A: mkiepfer, your question is split up across several different questions. Can you please summarize and submit the question as one full question please?

Andy Haslam [MS] (Expert)[18:23]:

Q: [11] Would the Experts like to share any blogs they may write for?

A: Mike Hall from our team writes a blog: http://blogs.msdn.com/mikehall/

Sing Wee [MS] (Expert)[18:23]:

Q: [3] Hello, I'm using Windows CE 5.0 and have question about application debugging with PB. Are there any limitations about the size of the PDB file? In my case, the breakpoints will be ignored in PB during the debug session.

A: Harald, just as a sanity check, you're able to set breakpoints in other modules, correct?

Travis Hobrla [MS] (Expert)[18:24]:

Q: [2] I have a problem with bad blocks in NAND Flash. My FMD driver implements the method FMD_WriteSector and return false if something goes wrong. Does the FAL automatically mark the block like bad block ? I'm using Windows CE 5.0.

A: The FAL doesn't mark the HW bad, but it should track that a block has become unusable. There is a bug around omitting blocks from the usable range in CE5. A QFE has been released or will be shortly (not sure whether it will be in the August or September 2009 drop).

RajeevDubey[MS] (Expert)[18:24]:

Q: [10] Re Bluetooth HDP, yes, I am not asking for HDP support, I think we or others could do that, but with out the CSA 1 support in the CORE, HDP cannot be implemented.

A: Hi Len, we do support BT stack to be extended by OEMs. If you have questions on extending stack to add CSA1 support since we do not have that in CE, please send me an email and we can discuss the solution.

RajeevDubey[MS] (Expert)[18:25]:

Q: [12] Note that Bluetooth CSA1 adds some functionality to L2CAP

A: We do support stack extensions by OEMs. Let me know via email what extensiosn you need at L2CAP.

Sing Wee [MS] (Expert)[18:28]:

Q: [11] Would the Experts like to share any blogs they may write for?

A: There are also very informative blog posts archived on the following blog (although it has been quiet for some months now): http://blogs.msdn.com/ce_base/

Travis Hobrla [MS] (Expert)[18:28]:

Q: [6] What are the causes of KITL timeout error in Platform Builder ?

A: Generally this is because your KITL driver is hanging. Possible causes are a failure in the KITL driver, a failure in the network hardware, an interrupt storm on the device that prevents your KITL ISR from executing, or a very high priority thread that is starving the KITL thread. I would recommend connecting a serial cable to see what output you get, and then try running KITL in polling mode to see if the failure still occurs in an effort to narrow down the cause to one of the things I mentioned.

Sue Loh [MS] (Expert)[18:31]:

Q: [11] Would the Experts like to share any blogs they may write for?

A: I wrote a lot on http://blogs.msdn.com/ce_base/ but haven't done so for a while. :-(

Travis Hobrla [MS] (Expert)[18:32]:

Q: [16] Thanks Travis....so...if FMD_WirteSector() return false, doens't FAL invoke FAL_SetBlockStatus() passing parameter BAD_BLOCK and mark it as bad block ? In this way, some application can reuse this block ???

A: If WriteSector fails, FAL will try to compact the block, only setting the status to BAD if EraseBlock fails and FMD_GetBlockStatus returns BAD. So if EraseBlock succeeds the application can reuse it. However, the bug I'm referring to allows blocks that are suspected to be bad to be reused, because the FAL fails to properly omit them. That bug is goign to be fixed in the QFE.

Sue Loh [MS] (Expert)[18:32]:

Q: [3] Hello, I'm using Windows CE 5.0 and have question about application debugging with PB. Are there any limitations about the size of the PDB file? In my case, the breakpoints will be ignored in PB during the debug session.

A: PDBs can be really large - that shouldn't be a limitation. Have you sanity-checked steps like I posted in http://blogs.msdn.com/ce_base/archive/2005/11/30/tips-for-using-breakpoints.aspx?

Sue Loh [MS] (Expert)[18:33]:

Q: [13, 14] Thanks Vadim, I mean I have 4 regions set in the storage manager. 2 are normal FILESYS regions, and 2 are protected. It is like this from the start to end [NK,FILESYS,BOOTL,HIVE]. Previously, I´ve used 2 fal fmd drivers for FILESYS and HIVE, protecting...
..manually the NK and BOOTL area. Now I want to tell the MDD that it can use the FILESYS and HIVE areas, in only one driver. (Note that the bootloader is in the middle of it)

A: Vadim YushprakhI am sorry that the concept of Regions is not better explained on MSDN. We're actually refering to a type of flash device which has multiple flash parts under one controller; where each flash part is a different region. What Marcelovk needs is partitions. Now it is possible to write a flash PDD that takes a single flash part and reports it up to the MDD as consisting of multiple regions; although that's not the common scenario. If that is what he is doing in the PDD, then the PDD must support the IOCTL_FLASH_PDD_GET_REGION_COUNT command, as well as IOCTL_FLASH_PDD_GET_REGION_INFO
the IOCTL_FLASH_PDD_GET_REGION_INFO command must return a structure that contains the same number of regions as reported by the COUNT command
In order for the MDD to be able to manage each regions, there are certain minimums that each region's geometry must meet
There is a minimum number of blocks (not sure of the value). The sector size must be a power of two. Each sector (flash page) must be at least 512 bytes;

masatos_MSFT (Expert)[18:33]:

Q: [15] We have noticed that when running a bigger CF application the notifyDB of WindowsCE6.0 will increase every time the system is rebooted. One entry will always be duplicated. This causes that Active Sync is not running anymore (->too many entries).

A: Thanks mkiepfer for summarizing your question. Looking for an expert who can help you with this

msft_davbo (Moderator)[18:33]:

Q: [11] Would the Experts like to share any blogs they may write for?

A: http://www.microsoft.com/windowsembedded/en-us/com munity/development.mspx - Several Blog links for Embedded

Sue Loh [MS] (Expert)[18:34]: Oops let me re-post that better formatted

kurtken_ms (Expert)[18:34]:

Q: [17] How can I set KITL in polling mode ?

A: usually there is an option in the bootloader that lets you set a flag that tells kitl to run in polling mode.

Travis Hobrla [MS] (Expert)[18:34]:

Q: [17] How can I set KITL in polling mode ?

A: Assuming you're using CE5.0 and oal_kitl.lib, you can pass the flag OAL_KITL_FLAGS_POLL in the OAL_KITL_ARGS.flags to OalKitlInit().

kurtken_ms (Expert)[18:35]:

Q: [17] How can I set KITL in polling mode ?

A: You can also set the SYSINTR kitl should use to 0 and that should make it use polling.

Sue Loh [MS] (Expert)[18:35]:

Q: [13, 14] Thanks Vadim, I mean I have 4 regions set in the storage manager. 2 are normal FILESYS regions, and 2 are protected. It is like this from the start to end [NK,FILESYS,BOOTL,HIVE]. Previously, I´ve used 2 fal fmd drivers for FILESYS and HIVE, protecting...
..manually the NK and BOOTL area. Now I want to tell the MDD that it can use the FILESYS and HIVE areas, in only one driver. (Note that the bootloader is in the middle of it)

A: [Vadim Yushprakh]
I am sorry that the concept of Regions is not better explained on MSDN. We're actually refering to a type of flash device which has multiple flash parts under one controller; where each flash part is a different region. What Marcelovk needs is partitions. Now it is possible to write a flash PDD that takes a single flash part and reports it up to the MDD as consisting of multiple regions; although that's not the common scenario. If that is what he is doing in the PDD, then the PDD must support the IOCTL_FLASH_PDD_GET_REGION_COUNT command, as well as IOCTL_FLASH_PDD_GET_REGION_INFO. The IOCTL_FLASH_PDD_GET_REGION_INFO command must return a structure that contains the same number of regions as reported by the COUNT command. In order for the MDD to be able to manage each regions, there are certain minimums that each region's geometry must meet. There is a minimum number of blocks (not sure of the value). The sector size must be a power of two.

Sue Loh [MS] (Expert)[18:36]:

Q: [13, 14] Thanks Vadim, I mean I have 4 regions set in the storage manager. 2 are normal FILESYS regions, and 2 are protected. It is like this from the start to end [NK,FILESYS,BOOTL,HIVE]. Previously, I´ve used 2 fal fmd drivers for FILESYS and HIVE, protecting...
..manually the NK and BOOTL area. Now I want to tell the MDD that it can use the FILESYS and HIVE areas, in only one driver. (Note that the bootloader is in the middle of it)

A: [Vadim, continued]
Each sector (flash page) must be at least 512 bytes; and we need at least 6 bytes of spare area per sector
Sue, if you'd like, you could give the customer my email, and they coudl contact me directly. This could become a deep discussion =)

mskim_MSFT (Expert)[18:37]:

Q: [4] Which Compact Framework version is in ROM on Windows Mobile 6.5 devices?

A: On my WM 6.5 phone, I have .NET CF 3.5.9198.0 but this can be changed by OEM. You can check the version of .NET CF by running Windows\cgacutil.exe.

chienher [MS] (Expert)[18:38]:

Q: [9] huger CF application. The problem then is that in most cases active sync is not running anymore. We assume that it takes to long to find the replog.exe entry within the norify db. Cleaning up the regsitry will reset the notifyDB and get the system back.

A: From what you've described looks like the "DB_Notify_Events" database has been messed up at run time. At normal situation, the AppRunAtRs232Detect event for repllog was setup within initdb.ini of your image, so at boot up time filesys will re-load it. You could use the DB api to enum the DB record from "DB_Notify_Events" and see how many records within it, does it have Record :
Field : 0001001f : "repllog.exe"
Field : 0002001f : "AppRunAtRs232Detect"
Field : 00030013 : 9
End

kurtken_ms (Expert)[18:39]:

Q: [18] So...if FMD_WriteSector() fails, FAL will try to compact the block. Waht is the function it invokes on the FMD driver ? If the compact fails, the FAL mark the block as bad ? A block is marked bad only when the erase fails ?

A: If FMD_WriteSector fails then the block should be marked bad internally in the FAL, and other sectors in the same block should be moved by the FAL to another block. As soon as FMD_WriteSector fails the FMD should mark the block as bad.

Travis Hobrla [MS] (Expert)[18:41]:

Q: [18] So...if FMD_WriteSector() fails, FAL will try to compact the block. Waht is the function it invokes on the FMD driver ? If the compact fails, the FAL mark the block as bad ? A block is marked bad only when the erase fails ?

A: compaction involves calls to FMD_ReadSector, FMD_WriteSector, and FMD_EraseBlock. We'll only mark the block unusable to the FAL if EraseBlock fails. Of course, if the driver returns BLOCK_STATUS_BAD from GetBlockStatus we wil not use it, also.

Sue Loh [MS] (Expert)[18:42]:

Q: [19] Thanks I see. I did not want to have partitions, because the bootloader is a critical area. If I have partitons, then they will be accessible from the Storage Manager, then I can render my board unbootable, right ?

A: Since you have a lot of questions, Vadim suggests that you take this onto email with him. I've already sent you his address, but feel free to contact me too if you have any problems reaching him.

chienher [MS] (Expert)[18:43]:

Q: [15] We have noticed that when running a bigger CF application the notifyDB of WindowsCE6.0 will increase every time the system is rebooted. One entry will always be duplicated. This causes that Active Sync is not running anymore (->too many entries).

A: You will need to find out which .NET app cause the "DB_Notify_Events" database to increase and fix from it.

chienher [MS] (Expert)[18:44]:

Q: [8] available after rebooting the board. I already have asked a question some time ago, but meanwhile there are a lot of applications running into this problem. We can not find any reason for that behaviour, yet, but it only seems to occur when running a

A: see previous

chienher [MS] (Expert)[18:44]:

Q: [7] We have noticed that the Notify-DB be packed with some new entries, when running a .NET application on WindowsCE 6.0. In this case one entry already available in this database will be duplicated. The curious about this is that the duplicate entry is only

A: see previous

chienher [MS] (Expert)[18:45]:

Q: [20] Q9: The problem that repllog.exe will not started anymore seems to be that there really a lot of duplicated entries available in the notifDB. Every time the board is rebootet one entry gets duplicated.

A: Yes. notify db doesn't prevent the dup and it is by design of CE6, and the root cause is why the application contonue to create the new record.

Sue Loh [MS] (Expert)[18:47]:

Q: [22] Do you have any news about strategy, how to share compiler fixes between PB QFEs and VS (I asked this last time)?

A: Let me re-state the question to make sure I understood: We released a compiler fix in a PB QFE and you want to know how to use this with an app project in VS. Is that right?

Travis Hobrla [MS] (Expert)[18:49]:

Q: [21] excuse me but I have a different answer from kurtken and Travis ... I don't understand if a block is marked bad by FAL or not....kurtken said yes "If FMD_WriteSector fails then the block should be marked bad internally in the FAL"....and Travis said no.

A: The bug that is being QFE'd is the FAL *should* mark the sectors unusable internally, but it fails to do so.

RajeevDubey[MS] (Expert)[18:50]:

Q: [24] Rajeev asked me to email him, but Idon't have his email address, could someone send it to len at socketmobile.com?

A: My email address - rajeevdu@microsoft.com

Sue Loh [MS] (Expert)[18:50]:

Q: [22] Do you have any news about strategy, how to share compiler fixes between PB QFEs and VS (I asked this last time)?

A: The compilers that you use when you build an application in VS are installed with the SDK. So you would have to replace the compilers in the SDK install... Probably c:\program files\windows ce tools\<SDK name>

Sue Loh [MS] (Expert)[18:52]:

Q: [22] Do you have any news about strategy, how to share compiler fixes between PB QFEs and VS (I asked this last time)?

A: (continued) However I'm not sure how well that would work. I am guessing there is at least some level of tying between compiler versions and things like headers. If the new compiler is from the same CE OS version as the SDK, just different by a QFE, it might work to replace it. If the new compiler is from a different CE OS version, you might find problems when you try to compile.

chienher [MS] (Expert)[18:53]:

Q: [23] Q15: Do you have any hint how to detect which app could cause this behaviour? As far as I know there is now obvious acces to the notifyDB within this application. We meanwhile have some customers, running different applications and all having the same prob

A: Try WM_DBNOTIFICATION and see which application is modifing the nitify DB.

Sue Loh [MS] (Expert)[18:55]: Sorry hhhh, we're only experts in Windows CE / Mobile, not word


If you still have unanswered questions, let me suggest that you post them on one of our newsgroups, such as Microsoft.public.windowsce.platbuilder.



So long and thanks for all the fish!


Read more! Post this to a friend!

Tuesday 29 September 2009

Don't miss Microsoft Technical Chat today!

just a quick reminder: the next MS technical chat on Windows Embedded CE and Windows Mobile takes place today, September 29th, 2009 at 18:00 - 19:00 CET

To join this chat, please log on via the main MSDN chat page at:
http://www.microsoft.com/communities/chats/default.mspx

And now for the good news! Microsoft has at last managed to get the transcripts online as well. You can find them here

So long and thanks for all the fish!


Read more! Post this to a friend!

Kevin Dallas ESC Keynote on YouTube

I guess following Kevin Dallas' - GM of Windows Embedded Business - Keynote at ESC Boston via Twitter was good to get all the important information at nearly realtime but I'm sure most of you will agree that it does not wholly replace the real thing.

You can now watch Kevin Dallas' Keynote on YouTube! Just follow the link
www.youtube.com/windowsembedded

So long and thanks for all the fish!
Read more! Post this to a friend!

Friday 25 September 2009

Windows Embedded CE: “We call it a Klassiker” part V:

Hi Folks,

when bringing up a Windows Embedded CE device, you might have come across the following “Faulted in KCall” Error:

Faulted in KCall, pCurThread->dwStartAddr = 40263d10, PageFreeCount = 00014937!!
Original Context when thread faulted:
Exception (3): Thread-Id=03d4000a(pth=8994bb4c), Proc-Id=00400002(pprc=8239bc80) 'NK.EXE', VM-active=017b0002(pprc=9e62861c) 'udevice.exe'
EIP=80260911 Flags=00003246 EA=00000000
Eax=00000000 Ebx=82359800 Ecx=00000000 Edx=d24ff8d0
Esi=d24ffbfc Edi=80273ed0 Ebp=d24ff864 Esp=d24ff860
CS=0019 DS=0040 ES=0040 SS=0021 FS=0060 GS=0000
Context when faulted in KCall:
Exception (3): Thread-Id=03d4000a(pth=8994bb4c), Proc-Id=00400002(pprc=8239bc80) 'NK.EXE', VM-active=017b0002(pprc=9e62861c) 'udevice.exe'
EIP=c0d912c0 Flags=00003286 EA=00000000
Eax=00000000 Ebx=82359800 Ecx=898036f0 Edx=c0d912c0
Esi=80228e10 Edi=82359720 Ebp=823596f0 Esp=823596d8
CS=0008 DS=89920040 ES=80270040 SS=0010 FS=82350060 GS=0000

This normally indicates some sort of memory problem which could have multiple causes for instance accessing unmapped memory. But figuring out the exact cause in any particular case is the second step.

Let’s focus on the first step, namely figuring out in which module the error occurred.

It doesn’t really help knowing the problem occurred in a user-mode driver (udevice.exe), as we normally have multiple user-mode drivers running in our system. Same of course goes if the problem would have occurred in a kernel-mode driver or a service which of course would run in nk.exe or servicesd.exe respectively.

Let’s have a look at the next clue then: pCurThread->dwStartAddr (here: 40263d10). Although you will not encounter a single hit (other than the error message) when searching your debug output, pCurThread->dwStartAddr is the solution to our problem. But how can that be?

All you have left to do in order to find the perpetrator is to find the module with the appropriate address range in you debug output. In order to do so, just look for the process context (in this example 9e62861c). Eventually you will arrive at the module that has the correct address range where pCurThread->dwStartAddr resides within:

>>> Loading Module 'softkb.dll' (0x894C7364) at address 0x40260000-0x4026A000 in Process 'NK.EXE' (0x8239BC80)
>>> Loading Module 'softkb.dll' (0x894C7364) at address 0x40260000-0x4026A000 in Process 'udevice.exe' (0x9E62861C)

As you can see in this case the exception was raised in the module softkb.dll.

Now you can hunt for the cause of this problem in the correct module. Sometimes you have to be a real detective when tracing bugs.

Have fun!
Read more! Post this to a friend!

Thursday 24 September 2009

Windows Embedded CE 6.0 R3: Silverlight for Windows Embedded

Hi folks,

Now that “Cashmere” has been officially announced to RTM on September 28th as Windows Embedded CE 6.0 R3 I can at last talk to you about the new features after playing around with the CTP (Community Technology Preview) for a month or so.

I guess the most anticipated new feature in Windows Embedded CE 6.0 R3 is Silverlight. But be aware: Silverlight is not Silverlight! Silverlight on your desktop is not the same as Silverlight on Windows Embedded CE 6.0 R3. Let’s have a look at the key differences:

  • The first noticeable difference is the name; on Windows Embedded CE 6.0 R3 it is called “Silverlight for Windows Embedded” whereas on the desktop it is just called Silverlight.


  • Silverlight for Windows Embedded is used to develop user interfaces (UI) for shells and applications running on a Windows Embedded CE 6.0 R3 device, whereas Silverlight is used to develop interactive applications for the web running in a web browser.


  • Silverlight for Windows Embedded hosts the object tree (an entity that represents a Silverlight 2 XAML element tree (= visual tree)) in a visual host that has an underlying Win32 window, whereas Silverlight hosts the object tree in a plug-in for an internet browser window.


  • Silverlight for Windows Embedded supports native C++ only, while Silverlight is based on the .NET Framework and uses managed code written in Visual C# .NET, Visual Basic, IronPython and JavaScript.


  • The Silverlight for Windows Embedded API set is a completely new API set, separate from the Silverlight APIs, although much of the Silverlight 2 functionality is mirrored in Silverlight for Windows Embedded. NOTE: Silverlight 3 functionality is not yet supported in Silverlight for Windows Embedded.


  • Silverlight for Windows Embedded does NOT support Hyperlink controls or Databinding.

    • The following picture shows you an example of a shell based on Silverlight for Windows Embedded:


      As you can see Silverlight for Windows Embedded and Silverlight are not exactly the same. For instance you can not install the Silverlight plug-in on your Windows Embedded CE 6.0 R3 device.

      In the next post I am going to talk about how to use Silverlight for Windows Embedded on your Windows Embedded CE 6.0 R3 device – so stay tuned!

      Have fun!
      Read more! Post this to a friend!

      Wednesday 23 September 2009

      Don't know how to make 'TargetCompilePass'

      It's another "Klassiker":

      BUILD: [01:0000000016:ERRORE] NMAKE : U1073: don't know how to make 'TargetCompilePass'
      BUILD: [01:0000000018:ERRORE] NMAKE.EXE TargetCompilePass -i -c BUILDMSG=Stop. ...

      This error means there is no makefile in your code directory. And it has nothing to do with the TargetCompilePass or NMake.
      Each directory with your code (e.g. a driver) must contain at least a sources and a makefile file. Just copy it from any other driver and modify the sources file. But never change the makefile!

      Tschüß Holger
      Read more! Post this to a friend!

      Tuesday 22 September 2009

      “Cashmere” aka Windows CE 6.0 R3 has been announced!

      Hi folks,

      lately there had been a lot of fuss about what “Cashmere” is. And no, it is NOT Windows Embedded CE 7.0 and neither does it have dual-core support nor is it a plug-in for Visual Studio 2008 as some people have suggested in the past.

      I could go on and on with this list…but let’s talk about what “Cashmere” really is: well it’s a city in Chelan County, Washington, USA some 140 miles east of Redmond with a population of about 3,000 inhabitants.

      Seriously, “Cashmere” has now been announced to RTM on September 28th as Windows Embedded CE 6.0 R3! Therefore it is an update package for Windows Embedded CE 6.0 R2, still running as a plug-in for Visual Studio 2005. After playing around with the beta version, as CTP (Community Technology Preview) participant, for about a month and a half, I am at long last allowed to talk about “Cashmere”.

      So what’s new in Windows Embedded CE 6.0 R3:
      • Silverlight for Windows Embedded: a native user interface development framework based on both C++ and Microsoft Silverlight 2

      • Connection Manager: which has already proven it's abilities under Windows Mobile and establishes and manages network connections such as wireless Internet and Bluetooth connections.

      • Touch Gestures: single-touch gestures only at this point.

      • Internet Explorer Embedded: improvements such as Silverlight for Windows Embedded UI development, better zoom functionality and Touch Gesture support.

      • Silverlight for Windows Embedded Sample Application (XamlPerf): demonstrates a simple Silverlight for Windows Embedded application that displays an animation on the screen and provides some basic performance information.

      • Third party applications: Adobe Flash Lite 3.0, MS Office (which have been part of Windows CE 5 but disappeared in Windows Embedded CE 6.0) and PDF viewers, Tencent Mobile QQ instant messenger.

      I will be talking about these exciting new features in detail in the next posts; so stay tuned and watch out for my next posts!

      Btw: there is a good German post here and you can find the official Press Release here a well as more information around Silverlight for Windows Embedded.

      Other additional news from Kevin's Keynote at ESC today:
      • In Q4 this year MSFT will be delivering Windows Embedded Server and Windows Embedded Enterprise
      • Around that time a point version of Microsoft Auto will be released
      • Windows Embedded Standard and the next version of Windows Embedded Compact (Chelan) to be delivered in Q2 2010
      • A Management Solution to help manage devices to be offered in Q3 2010
      • Embedded Spark 2010 to be kicked off this year - the theme is fun and games
      Have fun!
      Read more! Post this to a friend!

      Microsoft Windows Embedded Business (MSFT WEB) on Twitter

      If you want to be up2date on the latest news around Microsoft's Windows Embedded Business, I have good news for you:

      Manoj Rami, Senior Marketing Manager in the Windows Embedded Group, has announced that the Microsoft Windows Embedded Team has now joined the Twittersphere.

      The Microsoft Windows Embedded team .. is excited to announce that we will be live Tweeting (10:30 AM EDT on 22/9) the industry keynote address given by Kevin Dallas, general manager of the Microsoft Windows Embedded Business, at next week’s Embedded Systems Conference (ESC) in Boston, MA

      so Manoj Rami.

      So follow @MSFTWEB and keep an eye out for exciting news at 16:30 CET.

      So long and thanks for all the fish!
      Read more! Post this to a friend!

      Thursday 17 September 2009

      Microsoft Wettbewerb: Top-Anwendungen für den „Windows Marketplace for Mobile“

      Hallo zusamman,

      endlich wieder mal ein Post auf Deutsch!

      Im Rahmen des „Windows Marketplace for Mobile“ verlost Microsoft Deutschland im Wettbewerb „Marketplace – fertig – los“ 13 Geldpreise im Gesamtwert von 20.000 € sowie 20 Windows Mobile 6.5 Smartphones!

      Teilnehmen können alle Entwickler, die sich erfolgreich im Windows Marketplace for Mobile angemeldet haben und mindestens eine DEUTSCHSPRACHIGE Anwendung oder Wiget dort eingestellt haben. Die Gewinner werden von einer unabhängigen Jury gekührt.

      Neugierig geworden? Dann nichts wie anmelden!

      Viel Glück!
      Read more! Post this to a friend!

      Wednesday 16 September 2009

      Windows CE QFEs for month of August 2009 arrived

      Hi folks,
      the latest Windows CE updates have been recently released and are available for download, in this month only for Windows CE 6.0.

      Windows CE 6.0 Platform Builder Monthly Update (August 2009)

      Download this set of updates for Windows Embedded CE 6.0 released during the period of August 1 - August 31, 2009. These updates are fixes for Windows Embedded CE operating system problems you run into during the development and maintenance of your custom platform.

      Download Link: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=09faa369-4899-4568-9996-e629e03f1baa

      Fixes made in this update:

      Component: ATL8

      • 090814_KB974616 - This update addresses some issues in Active Template Library.

      Component: Bluetooth HID Host Profile

      • 090806_KB974136 - This update addresses issues with the HID Virtual Cable PTS tests: C_HOS_HCR_BV_03_I and TC_HOS_HCR_BV_04_I.

      Component: CETK

      Component: Core GWES

      Component: DirectX

      • 090824_KB974357 - WMP may not be albe to play ASP files which contains MP3 format stream.

      Component: PPP2

      • 090824_KB974042 - Windows Embedded CE 6/0 device may fail to resolve names using DNS query for VPN connections even though it has received IP address from DHCP server.

      Component: TCP/IP

      • 090821_KB973144 - Windows Embedded CE 6.0 TCP Send/Receive throughput optimization.

      Keep your OS up to date
      Read more! Post this to a friend!

      Friday 11 September 2009

      Windows Embedded CE and Windows Mobile Live Chat

      Hello guys,

      there is a new chance to talk with Microsoft guys about Windows Embedded CE and Windows Mobile.
      Title: Windows Embedded CE and Windows Mobile Live Chat
      Date: Sep 29th, 2009 19:00 - 20:00 Central Europe Time

      What you have to do is, to follow this link and join the live chat! :)

      Have fun!

      PS: Unfortunately the CE girls and guys still seem to be too busy to put the last chat transcripts online - I wonder if it has something to do with ESC Boston ;-)

      Transcripts can be found: here
      Read more! Post this to a friend!

      Friday 4 September 2009

      Xplova G5 debuts at Eurobike

      As Olivier and Mike have been posting about Windows Embedded devices in the past I thought I would add something new to their lists.

      The Xplova G5 Bike Navigator is currently being shown at the Eurobike show in Friedrichshafen, Germany, and is most probably the first serious off-road navigation devices on the market today - providing a combined seamless navigation (on- and off-road as well as across cities and borders) and cycling experience: The device allows you to monitor time, distance, speed, heart rate and calories burned, just to name a few.

      The doors of the Eurobike show are open to the public on September 5th, so if you happen to be in Friedrichshafen (where they also happen to have very good wine) and you're an outdoor enthusiast, check it out.

      So long and thanks for all the fish!
      Read more! Post this to a friend!

      Thursday 3 September 2009

      Omg, my image is too large!

      Limitted recources on Windows CE devices cause a lot of trouble.
      I want to give you some hints to find out why your image is twice the expected size.
      It's not so easy to find out what OS components can be removed for a specific project.
      • NK.nb0 vs. NK.bin: The BIN-File is roughly the size you need on Flash and additionally on RAM. If you use a NB0-File and your BIN-File is much smaller, just review your config.bib and check the ROMSIZE value. And set AUTOSIZE=ON if possible.
      • Catalog View: Review the Catalog Items under "Core OS". The Platform Builder adds Catalog Items to your project if it depends on another item. Select the filter "User-selected Cataloge Items and Dependencies" and review the small green squares. Select "Reasons for Inclusion of Item" from the context menu.
      • SYSGEN_*: In the properties of the Catalog Items you can see the corresponding SYSGEN variable. The build process "translates" the SYSGEN variables to a list of OS components in CE_MODULES, IE_MODULES ... You find these "rules" in the batch files under Public/CeBase/Oak/Misc. In the most cases each OS component corresponds with a DLL or EXE file in your release directory.
      • CeConfig.h: In each release directory and on each device you find a CeConfig.h file with the complete list of OS components in your image. Review this file to find obsolete components.
      • DLL-Size: Sort your DLLs and EXE files in your release directory by size and try to remove the largest files.
      • ViewBin: With the tool "ViewBin -t nk.bin" you see a list of MODULES and FILES and it's sizes.
      Large files are Internet Explorer components, VBScript, JScript and fonts. Sometimes there are MFC DLLs in an image but no MFC applications. Standard SDK compatibility is deprecated and it adds a lot of dependent components.
      But don't try to remove each unknown 20kByte file, it will make your image very special.
      After changing your OS extend you have to rebuild your Platform SDK.
      I hope my hints are helpful to make your OS image smaller.

      Tschüß Holger
      Read more! Post this to a friend!

      Wednesday 2 September 2009

      Windows Embedded Standard 2011 CTP goes public

      Interested in the newest Microsoft Windows Embedded Operating System based on Windows 7? Then, I have got good news for you. Yesterday, Microsoft released the "Windows 7-based Windows Embedded Standard (WES) 2011 - formerly known as Quebec - Community Technology Preview (CTP) to the public at http://connect.microsoft.com/windowsembedded

      WES 2011 provides Windows 7 technologies plus Embedded Enabling Features (EEFs) to the embedded Market.

      To find out more read the pressrelease on Microsoft's presspass here or visit the Embedded Systems Conference (ESC) in Boston, where Kevin Dallas, will be delivering a keynote and where attendess of TechInsights' "Build Your Own Embedded System" can take home a custom-configured design kit based on WES - http://esc-boston.techinsightsevents.com.

      So long and thanks for all the fish!
      Read more! Post this to a friend!

      Tuesday 1 September 2009

      .NET Micro Framework 4.0 Beta

      Hi folks,

      for those of you following the recent evolution of the .NET Micro Framework you will be pleased to hear that the .NET Micro Framework Team is getting ready to deliver the 4.0 Beta.

      The Team will be setting up a program through Microsoft Connect, so if you're interested in being invited to download the SDK and Porting Kit and participate in the Beta program, be sure to join the .NET Micro Framework Community on https://connect.microsoft.com as soon as possible.

      So long and thanks for all the fish!
      Read more! Post this to a friend!