For those of you who missed the chat today, here is the raw transcript.   By raw, I mean that I copied and pasted the discussion without any edits. This is divided into two parts, the top part is the answers from the Microsoft Experts and the bottom part is the questions from the audience.
Answers from Microsoft:
 
msft_davbo (Moderator): Our chat today covers the topic of Windows Embedded CE!

1. This chat will last for one hour. During this hour, our Experts will respond to as many questions as they can. Please understand that there may be some questions we cannot respond to due to lack of information or because the information is not yet public.

2. We encourage you to submit questions for our Experts. To do so, type your questions in the send box, select the “ask the Experts” box and click SEND. Questions sent directly to the Guest Chat room will not be answered by the Experts, but we encourage other community members to assist.

3. We ask that you stay on topic for the duration of the chat. This helps the Guests and Experts follow the conversation more easily. We invite you to ask off topic questions after this chat is over, but not during.

4. Please abide by the Chat Code of Conduct.

Chat code of conduct: <http://msdn.microsoft.com/chats/chatroom.aspx?ctl=hlp#Conduct>;
msft_davbo (Moderator): We are pleased to welcome our Experts for today’s chat. I will have them introduce themselves now.

Chat will begin in a couple of minutes.

<http://www.Microsoft.com/Embedded>;

mskim_MSFT (Expert)[12:01]: Hello, this is mskim from Windows CE JDP team.
RajeevDubey[MS] (Expert)[12:01]: Hi, this is Rajeev Dubey, Program Manager for Bluetooth.
mikehall_ms (Moderator)[12:02]: Hi, I'm Mike Hall, Software Architect
Sing Wee [MS] (Expert)[12:05]: Hello, I'm Sing Wee, member of the CoreOS/BSP Test Team.
FBlanq_MSFT (Expert)[12:05]: Hi, I'm Francisco Blanquicet, SDET with CoreOS/WinCE
msft_davbo (Moderator)[12:05]: Chat is started so ask any questions you may have about Windows CE.
rajran[MSFT] (Expert)[12:06]: Hi , I'm Rajeev Rangappa, PM in Core Team
Q: [1] hi experts, is there any way to provide debug information for assembler files (.s) to the debugger so that i can step through the sources? currently only exported symbols are visible to the debugger
A: As far as I know, the only way to step into and through assembler sources is to either (1) first switch to the 'disassembly' pane of the debugger, then either set a breakpoint on a CPU instruction, or (2) switch to the disassembly view in the source view and "step into" a function call. (bl on ARM, call on X86)
Q: [6] [1] so there is no way to get debug info for assembler files into the pdb files?
A: What kind of info are you wanting to get into the PDB files? What is missing and what way are you accessing information?
Q: [11] [6] i know i can step i the disassembler view, but it is somewhat painful without the coments of the sourcefile. So I would like to see and step in the assembler sourcefile while debugging like when debugging c or cpp files
A: ah, so what you're wanting is a mixed assembler/code bytes view. I do not thing our tools currently have such a view for the Windows CE debugger. You would have to open a source code window side-by-side in platform builder to see the comments.
Q: [12] [6] also local (not exported] labels are not known to the debugger
A: No, unfortunately local assembler labels are not accounted for in the debugging information.
Q: [13] [11] well thats the way i spend most of my time
A: We can give this feedback to our tool chain developers. Thanks for the input.
Q: [15] XAML + Other Windows: I have an MFC app which contains window based user draw controls (caches and draws bitmaps and overlays data on them). I want to update the UI to use XAML. How can I embed some of these existing controls in the XAML app?
A: Here is MSDN link regarding Win32Control in Silverlight for Windows Embedded.
Q: [15] XAML + Other Windows: I have an MFC app which contains window based user draw controls (caches and draws bitmaps and overlays data on them). I want to update the UI to use XAML. How can I embed some of these existing controls in the XAML app?
A: Yes, you can use Win32Control in Silverlight for Windows Embedded. Here is the link on msdn regarding Win32Contro. http://msdn.microsoft.com/en-us/library/ee502772.aspx
Q: [2] hi experts, i have integrated lint in the build prrocess. to see the output i have used the build_markers for C files, so they are also shown as c files in the summary. is there any way to show them with the "other files", in other words which build marker
A: Drivers should get notifications when suspend is happening if there's a driver that's not responding to a notification properly (in this case the driver for the RAM file system), you can definitely expect resource leaks or other bad behavior. Since this problem occurs only after a few suspends/resumes, I suspect that a very large amount of memory is being leaked - much more than the size of the file you're opening and closing. To debug this, I think you will want to instrument your app. As a next step, can you track the available object store space in your thread and try to understand more deeply how the memory is being used? See GetStoreInformation (http://msdn.microsoft.com/en-us/library/aa916952.aspx). After that, it may be worthwhile to turn on DEBUGZONEs in filesys.dll to see if there are any useful messages that can help you understand the situation.
Travis Hobrla [MS] (Expert)[12:25]: Answered the wrong question, one moment!
Q: [10] I'm creating the file in RAMFS, and I don't believe my thread can have any leak considering it's just opening and closing the same file. Do you have any idea what could go wrong ? Thank you.
A: Drivers should get notifications when suspend is happening if there's a driver that's not responding to a notification properly (in this case the driver for the RAM file system), you can definitely expect resource leaks or other bad behavior. Since this problem occurs only after a few suspends/resumes, I suspect that a very large amount of memory is being leaked - much more than the size of the file you're opening and closing. To debug this, I think you will want to instrument your app. As a next step, can you track the available object store space in your thread and try to understand more deeply how the memory is being used? See GetStoreInformation (http://msdn.microsoft.com/en-us/library/aa916952.aspx). After that, it may be worthwhile to turn on DEBUGZONEs in filesys.dll to see if there are any useful messages that can help you understand the situation.
Q: [13] [11] well thats the way i spend most of my time
A: I just tried something similar to this. In a debug build, I break into my C code, and go to disassembly view. I see the assembly code inline with my C code and my comments, so I would expect you should be able to see your assembly code inline with your comments as well.
Q: [16] XAML + Other Windows: Effectively I want to skin the current app using XAML. Maybe there are some examples shipped with R3?
A: In R3, there is a IEsample_exr in public\ie\oak you can reference. How to skin the existing application with Silverlight for Windows Embedded.
Travis Hobrla [MS] (Expert)[12:27]: @winceLover: use "Ask the Experts"
Q: [18] hi experts, is there an easy way to enable debug zones in advance for dlls that haven't been loaded yet? Some dlls only get loaded while an application is running and by the time I get to click on Target->CE Debug Zones-><module name> it's already too late
A: I would recommend the "Host side (desktop) registry" method outlined here: http://blogs.msdn.com/ce_base/archive/2006/12/18/debug-messages-and-debug-zones-in-windows-ce.aspx
Q: [20] [10] - I will try to track the memory used in my thread more thoroughly. It's too bad I can't use KITL at that point as I'm doing suspend/resumes tests. So Travis, you're saying that there might be a leak in the RAM file system (which is public code) ?
A: It's certainly possible, but there is more investigation which is required before you can be sure.
Q: [19] Sing Wee [13] well that doesn't work for assembler files, at least in my environment, although I have to say I use trace32 vom lauterbach most of the time. But this is the behaviour i would wish for .s files.
A: It's a good feature request for the tools but I don't think we have any support for it right now. Sorry!
Q: [17] hi experts, is there a way to put additional items to the clean target without modifying makefile.def?
A: I believe the only way is during the WINCETARGETFILES or WINCETARGETFILES0 phase, you could completely override the clean rule in your own makefile.inc.
Q: [20] [10] - I will try to track the memory used in my thread more thoroughly. It's too bad I can't use KITL at that point as I'm doing suspend/resumes tests. So Travis, you're saying that there might be a leak in the RAM file system (which is public code) ?
A: I haven't tried this over suspend/resume cycles, but have you by any chance tried using AppVerifier to see if you can catch where memory may be leaking from?
Q: [23] Sing Wee [19] well, perhaps there are not much assembler junkies out there , thank you any way
A: No worries. Out of curiosity, are you doing this in CE6 or CE5? My observations were based on CE6.
Q: [22] We need to give camera data to the appln for displaying it on the WINCE 6.0 device LCD or we need to send the camera frames to the device USB video class for displaying at the desktop PC app.IS both my requirement will be acheived by DSHOW camera driver?
A: Yes DirectShow is the best place to build your camera application. Check Mike Hall's blog for a USB Camera Driver download http://blogs.msdn.com/mikehall/archive/2007/06/07/download-ce-6-0-usb-camera-driver.aspx. This driver allows you to pull in frames into DirectShow from a USB attached camera on Windows CE. For communicating to a Desktop you'd need to build a custom communication sink filter to send the frames from Windows CE to a corresponding custom source filter on the Desktop. If interested can post a sample on codeplex w/ details on setting up the filters send email to davbo@microsoft.com.
Q: [21] What is the best way to setup a filesystem storing hive registry ? In our system, the SD card will be the storage holding it. Should we setup the SD card as MountPermanent, and are there other registry keys worth setting ?
A: Is the SD card fixed in place in your unit? If so, you should be safe to mount the card permanently. Also, make sure it is set to mount at boot time. For reference, examine some existing drivers that use persistent store for their registry
Q: Prabu, what's UVC stack?
Q: [20] [10] - I will try to track the memory used in my thread more thoroughly. It's too bad I can't use KITL at that point as I'm doing suspend/resumes tests. So Travis, you're saying that there might be a leak in the RAM file system (which is public code) ?
A: And which public code RAMFS driver are you using? The RAMDISK, RAMFMD or?
Q: [21] What is the best way to setup a filesystem storing hive registry ? In our system, the SD card will be the storage holding it. Should we setup the SD card as MountPermanent, and are there other registry keys worth setting ?
A: In addition to what Kurt said, http://msdn.microsoft.com/en-us/library/aa914710.aspx gives you a good introduction. Basically you need to make sure the registry for your SD driver is wrapped in ;HIVE BOOT SECTION tags, as well as anything that driver depends on, so that it can get loaded in phase 0.
Q: [27] Sing Wee [23] i am doing CE6, porting to a OMAP platform, currently working on the bootloader, but work is proceeded to jump to BootloaderMain
A: Understood - thanks.
Q: [26] [20] Sing Wee : I haven't tried using AppVerifier, does it support well checking leaks while suspending/resuming the system ?
A: That's the part I haven't tried. AppVerifier keeps track of memory by monitoring calls to allocate/deallocate memory on processes/DLLs you point it at. *If* it works over suspend/resume, the checkpoint/delta feature might help you narrow down the problem more quickly. I'm having difficulty finding my original posting, but a copy of it has apparently made it here: http://www.pocketpcjunkies.com/Uwe/Forum.aspx/wince-test/481/Can-app-verifier-detect-memory-leak-in-a-driver
Q: [28] [21] - yes, this is setup correctly and works fine, until going to suspend/resume, where the SD gets unmounted and remounted. My question is : should we absolutely keep the power on to the SD card (it's never removed), and set it as MountPermanent ?
A: You should be able to call RegFlushKey (http://msdn.microsoft.com/en-us/library/aa917036.aspx) during your power-down code and unmount / remount.
Q: [24] Using DSHOW layer can we give the camera frames to the client UVC stack?
A: Is you question about around if you have a Windows CE Web Camera and plug into a Desktop Machine how to provide the frames from Windows CE to the Desktop UVC Stack? Desktop MSDN info for UVC Stack http://msdn.microsoft.com/en-us/library/ee349147.aspx.
Q: [28] [21] - yes, this is setup correctly and works fine, until going to suspend/resume, where the SD gets unmounted and remounted. My question is : should we absolutely keep the power on to the SD card (it's never removed), and set it as MountPermanent ?
A: In addtion to keep the power (or handle the power cycle correctly), MountPermanent , you SD Host controller driver should never simulate a card replug after suspend/resume.
Q: [30] Travis [17] I am not sure if i understand you right, the WINCETARGETFILES targets are executed after building so not really good for cleaning, WINCETARGETFILE0 are executed before compiling, but what if only the clean target is performed?
A: Do you mean by calling 'nmake clean' ?
Q: [33] Travis [17] yes, for example, or clicking Build - Clean in VS2005
A: Unforunately I don't think there is a way to handle 'nmake clean' without modifying makefile.def. Build - Clean I believe executes "build -c" which would execute the WINCETARGETFILES0 pass - you could do cleanup at that point, before things get compiled.
Q: [34] Travis [33] ok, are there "best practices" for modifying makefile.def?
A: The 'best practice' is to make a backup, change as little as possible, and do so at your own risk! What exactly are you trying to accomplish?
Q: [31, 29] Can you point me to the KB entry or tell us what exactly has to be adapted in the OAL Cache routine?
In a previous QFE adressing the L2 cache it is documented that one has to adapt the OAL Cache routines. To found out how we were hoping for more information from the KB entry which however does not seem to exist. Question following.
A: Title: FIX: Kernel does not properly handle BSPs that distinguish between L1 and L2 cache flushing in Windows Embedded CE 6.0.

Symptoms:
A performance problem was found in Cortex-A8 based processors due to excessive PSL API call overhead caused by unnecessary L2 cache flush operations.

With the code changes included in this QFE, the kernel now maintains proper L2 cache coherence so that the system can benefit from performance enhancements obtained by separating L1/L2 cache flushing in the OAL. To take advantage of this performance improvement, the OAL should be modified to flush L1 and L2 cache only when necessary.

This QFE may also address L2 caching issues in other CPU architectures whose OEMCacheRangeFlush implementations properly respect L2 cache flags:
• CACHE_SYNC_WRITEBACK: write back L1 data cache to L2 data cache
• CACHE_SYNC_DISCARD: write back L1 data cache to L2 data cache and discard L1 data cache
• CACHE_SYNC_L2_WRITEBACK: write back L2 data cache to memory
• CACHE_SYNC_L2_DISCARD: write
Q: [32] Multiple Displays: One of our projects requires two displays with independent content. Under CE6 is it possible using direct show to display different media (ie. different videos) on each of the display and two channels of Audio? We will write custom app.
A: Check out Microsoft Embedded Automotive who has support for up to 10 zones of AV content: http://www.microsoft.com/auto/ma.mspx. Typically they are just using 1-2 zones for front and rear AV zone control in the vehicle.
Q: [31] Can you point me to the KB entry or tell us what exactly has to be adapted in the OAL Cache routine?
A: Damian, can you please send me your email in a private message? I'll see if I can dig up the KB number for you.
Q: [31] Can you point me to the KB entry or tell us what exactly has to be adapted in the OAL Cache routine?
A: Looks like there was a limit to how much I could put in my response. Here's the final line in it's entirety:
• CACHE_SYNC_L2_DISCARD: write back L2 data cache to memory and discard L2 data cache
Q: [35] Travis [33] i am integrating lint, doxygen and some other tools (see previous question about build marker). so there are some non standard files to clean
A: I see. Well, the clean rules in makefile.def are pretty straightforward, so you should be able to alter them without affecting too much. I'd recommend adding a 'cleanlint' target to the clean rule, and implementing that.
Q: [31] Can you point me to the KB entry or tell us what exactly has to be adapted in the OAL Cache routine?
A: Basically, the OAL's OEMCacheRangeFlush implmentation needs to follow the guideline in http://msdn.microsoft.com/en-us/library/ee478186.aspx
msft_davbo (Moderator)[13:00]: Hello everyone, we are just about out of time.

Thank you for joining us for our Windows Embedded CE 6.0 chat today!

<http://www.Microsoft.com/Embedded>;

A special thank you to the product group members for coming out.

The transcript of today’s chat will be posted online as soon as possible, to <http://msdn.microsoft.com/en-us/chats>;. We’ll see you again for another chat next month. Please check <http://msdn.microsoft.com/en-us/chats>; for the list of upcoming chats.

If you still have unanswered questions, let me suggest that you post them on one of our newsgroups on
<http://msdn.microsoft.com/en-us/windowsembedded/ce/default.aspx>

-Windows
Embedded CE 6.0 R3 Now Available! <http://msdn.microsoft.com/windowsembedded/ce/dd630616.aspx>;
 
 
The Questions
 
msft_davbo (Moderator)[12:05]: Chat is now started.
Andrew Scholan MCTS[12:05]: Hello, this is Andrew Scholan from Plextek in Cambridge, UK.
wolfelectronic[12:06] asked the experts: hi experts, is there any way to provide debug information for assembler files (.s) to the debugger so that i can step through the sources? currently only exported symbols are visible to the debugger
wolfelectronic[12:09] asked the experts: hi experts, i have integrated lint in the build prrocess. to see the output i have used the build_markers for C files, so they are also shown as c files in the summary. is there any way to show them with the "other files", in other words which build marker
wolfelectronic[12:09] asked the experts: should i use for other files?
Sebastien[12:11] asked the experts: Hello everyone, I am currently testing my WinCE 6 iMX31 based platform and doing automated suspend/resume stress testing. My application first sends a message to a PIC to ask the PIC to resume the processor later, then my application goes to suspend.
Sebastien[12:12] asked the experts: After ten seconds, the PIC wakes up the system and the process repeats.
wolfelectronic[12:12] asked the experts: [1] so there is no way to get debug info for assembler files into the pdb files?
Sebastien[12:12] asked the experts: After making this work properly, I added a thread in my test application which does nothing more than opening a file and closing it in a loop.
Sebastien[12:12] asked the experts: After a few suspend/resumes, a message box appears in CE telling me that the program memory is very low and the system becomes unresponsive.
Sebastien[12:12] asked the experts: When I'm not executing this thread, my system can suspend/resume up to a thousand times or more.
Sebastien[12:13] asked the experts: I'm creating the file in RAMFS, and I don't believe my thread can have any leak considering it's just opening and closing the same file. Do you have any idea what could go wrong ? Thank you.
wolfelectronic[12:15] asked the experts: [6] i know i can step i the disassembler view, but it is somewhat painful without the coments of the sourcefile. So I would like to see and step in the assembler sourcefile while debugging like when debugging c or cpp files
wolfelectronic[12:16] asked the experts: [6] also local (not exported] labels are not known to the debugger
wolfelectronic[12:17] asked the experts: [11] well thats the way i spend most of my time
Bruce Eitman[12:17]: Sebastian - does your question have anything to do with the suspend/resume? What happens if you just run your file access thread without suspending?
wolfelectronic[12:18] asked the experts: [12] ok, thankyou kurtken
Andrew Scholan MCTS[12:19] asked the experts: XAML + Other Windows: I have an MFC app which contains window based user draw controls (caches and draws bitmaps and overlays data on them). I want to update the UI to use XAML. How can I embed some of these existing controls in the XAML app?
Andrew Scholan MCTS[12:22] asked the experts: XAML + Other Windows: Effectively I want to skin the current app using XAML. Maybe there are some examples shipped with R3?
wolfelectronic[12:23] asked the experts: hi experts, is there a way to put additional items to the clean target without modifying makefile.def?
Sebastien[12:23]: Bruce: sorry I didn't see you message until now. If I don't suspend/resume, I don't have this problem
winceLover[12:26]: hi experts, is there an easy way to enable debug zones in advance for dlls that hasn't been loaded yet? Some dlls only get loaded while an application is running and by the time I get to click on Target->CE Debug Zones-><module name> it's already too late
PaulT[12:27]: winceLover: Don't forget to check the Ask the Experts checkbox. This puts your question in a queue from which it is answered...
winceLover[12:28] asked the experts: hi experts, is there an easy way to enable debug zones in advance for dlls that haven't been loaded yet? Some dlls only get loaded while an application is running and by the time I get to click on Target->CE Debug Zones-><module name> it's already too late
wolfelectronic[12:29] asked the experts: Sing Wee [13] well that doesn't work for assembler files, at least in my environment, although I have to say I use trace32 vom lauterbach most of the time. But this is the behaviour i would wish for .s files.
Sebastien[12:30] asked the experts: [10] - I will try to track the memory used in my thread more thoroughly. It's too bad I can't use KITL at that point as I'm doing suspend/resumes tests. So Travis, you're saying that there might be a leak in the RAM file system (which is public code) ?
Andrew Scholan MCTS[12:31]: XAML + Other Windows: Thanks.
Sebastien[12:32] asked the experts: What is the best way to setup a filesystem storing hive registry ? In our system, the SD card will be the storage holding it. Should we setup the SD card as MountPermanent, and are there other registry keys worth setting ?
Prabu[12:33] asked the experts: We need to give camera data to the appln for displaying it on the WINCE 6.0 device LCD or we need to send the camera frames to the device USB video class for displaying at the desktop PC app.IS both my requirement will be acheived by DSHOW camera driver?
Sebastien[12:33]: Thanks Travis
wolfelectronic[12:36] asked the experts: Sing Wee [19] well, perhaps there are not much assembler junkies out there , thank you any way
Prabu[12:37] asked the experts: Using DSHOW layer can we give the camera frames to the client UVC stack?
Sebastien[12:40]: [20] Sing Wee : I haven't tried using AppVerifier, does it support well checking leaks while suspending/resuming the system ?
Prabu[12:41] asked the experts: USB Video Class
Sebastien[12:41] asked the experts: [20] Sing Wee : I haven't tried using AppVerifier, does it support well checking leaks while suspending/resuming the system ?
wolfelectronic[12:41] asked the experts: Sing Wee [23] i am doing CE6, porting to a OMAP platform, currently working on the bootloader, but work is proceeded to jump to BootloaderMain
Sebastien[12:43] asked the experts: [21] - yes, this is setup correctly and works fine, until going to suspend/resume, where the SD gets unmounted and remounted. My question is : should we absolutely keep the power on to the SD card (it's never removed), and set it as MountPermanent ?
Damian Barnett[12:46] asked the experts: In a previous QFE adressing the L2 cache it is documented that one has to adapt the OAL Cache routines. To found out how we were hoping for more information from the KB entry which however does not seem to exist. Question following.
wolfelectronic[12:46] asked the experts: Travis [17] I am not sure if i understand you right, the WINCETARGETFILES targets are executed after building so not really good for cleaning, WINCETARGETFILE0 are executed before compiling, but what if only the clean target is performed?
Damian Barnett[12:47]: Can you point me to the KB entry or tell us what has to be adapted in OAL Cache routine?
Damian Barnett[12:47] asked the experts: Can you point me to the KB entry or tell us what exactly has to be adapted in the OAL Cache routine?
Sebastien[12:49]: [26] Thank you Sing
Andrew Scholan MCTS[12:51] asked the experts: Multiple Displays: One of our projects requires two displays with independent content. Under CE6 is it possible using direct show to display different media (ie. different videos) on each of the display and two channels of Audio? We will write custom app.
Sebastien[12:51]: [28] - Thank you Travis
wolfelectronic[12:51] asked the experts: Travis [17] yes, for example, or clicking Build - Clean in VS2005
wolfelectronic[12:55] asked the experts: Travis [33] ok, are there "best practices" for modifying makefile.def?
wolfelectronic[12:57] asked the experts: Travis [33] i am integrating lint, doxygen and some other tools (see previous question about build marker). so there are some non standard files to clean
Damian Barnett[12:59]: Thanks Sing!
msft_davbo (Moderator)[13:00]: Hello everyone, we are just about out of time.

Thank you for joining us for our Windows Embedded CE 6.0 chat today!

<http://www.Microsoft.com/Embedded>;

A special thank you to the product group members for coming out.

The transcript of today’s chat will be posted online as soon as possible, to <http://msdn.microsoft.com/en-us/chats>;. We’ll see you again for another chat next month. Please check <http://msdn.microsoft.com/en-us/chats>; for the list of upcoming chats.

If you still have unanswered questions, let me suggest that you post them on one of our newsgroups on
<http://msdn.microsoft.com/en-us/windowsembedded/ce/default.aspx>

-Windows
Embedded CE 6.0 R3 Now Available! <http://msdn.microsoft.com/windowsembedded/ce/dd630616.aspx>;
Chat Topic: Open Peer-to-Peer Technical Chat in Progress
 
Copyright © 2009 – Bruce Eitman
All Rights Reserved