Thursday 24 December 2009

Merry Christmas

Hi folks,

I’d like to wish all of you a Merry Christmas and a Happy New Year, also on behalf of our entire team! Hopefully you get to spend some quiet, peaceful time with your loved ones.

Of course we will continue to post interesting and helpful news from the world of Windows Embedded here on our blog in 2010.

Meanwhile, if there are any topics that your would like to discuss further or that you think that are missing on our blog, please let me know so in the comment section!

Again, Happy Holidays to you all!
-Jochen
Read more! Post this to a friend!

Wednesday 23 December 2009

Season Greetings and a small Quiz

I guess it's time to wish all our readers and followers a very Merry Christmas and a Happy and Prosperous New Year 2010!

As this is the Season of Giving we thought we would give away some Windows CE 6.0 books. For free? Well, we thought we would do a small quiz and then draw 5 Winners from those readers who get all answers right.

So have fun with the quiz, have yourselfs a nice and quiet Christmas and a really loud New Year!

Simply send the answers to our EMail Adress and we will let you know if you are one of the lucky winners! Btw: You can find (nearly) all answers in this Blog.

1) What is the name of the missing symbol by the following error message "Error: Can't find import 2508 in coredll.dll".
2) What is the recommended size for the (MTU = maximum transmission unit) while using PB KITL debugger?
3) What was the codname of Microsoft Auto 4.0 RTM?
4) In which country is the Microsofts Student Technology Competition "Imagine Cup 2010" going to be hosted?
5) With which Version of Windows CE did Microsoft start to use Whiskeys as code names?
6) Which define is required (in the sources file) to get the wMMX2 instruction set for your XScale processor in your assembler code?
7) From which book is "So long and thanks for all the fish!" and who said it?

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

Friday 18 December 2009

"Snowing" news from Nürnberg ...

to all Windows Embedded developers!!! :)

and I hope that you have also nice weather like us here in Nürnberg. If not I recommend you to visit the "Christkindlesmarkt" at Nürnbergs downtown. Just have fun!
Read more! Post this to a friend!

Wednesday 16 December 2009

Use previous Windows Embedded CE 6.0 Rx install for your next project

Using your previous Windows Embedded CE 6.0 Rx install for your next project should actually be a valid use case. But as a feedback from yesterdays post in this blog I got a phone call from one of my colleagues asking: "Look: Half of my development team has build problems after installing the new BSP in our new project. Any idea?"

I remembered the Peanuts comics, smiled and said: "The doctor is in! So tell me..."

Doing a blddemo -q build errors occur stating error C2677: Undefined assembler operation. The current build directory is c:\wince600\platform\common\src\soc\....blabla...

So what's happening here?

error C2677 is a MIPS Error Message. The directory above is listing the SOC (System On Chip) designs supported by all installed BSPs. Inside that directory we identified BSP support for various SOCs. These causing the problems and used in previous projects were Freescale's iMX27, iMX31, and iMX35. And these are non MIPS but ARM core SOC designs. And surely the selected MIPS assembler does not know how to handle ARM assembler operations.

So I suggested to deinstall these iMX BSPs which would surely solve the build problem. But that's not a valid solution if you still have to support the old project.

2nd proposal is to introduce some logic checking an environment variable defining the CPU or SOC (TGTCPU) selected for the current build in the C:\WINCE600\PLATFORM\COMMON\SRC\SOC\dirs until now stating to traverse all subdirectories (DIRS=*). But that's most likely causing maintenance issues on this file for upcoming BSP installs or removals that have to be solved manually even if these BSPs do not have the drawbacks from Freescales BSPs mentioned.

So how and where do other BSPs control if they are MIPS or ARM or whatever?

Well, directly in the sources files inside the subdirectories below C:\WINCE600\PLATFORM\COMMON\SRC\SOC\. Inside these sources files you can use NOMIPS16CODE=1 or identify ARM assembler sources by ARM_SOURCES= foobar.s ...

So you can add this type of control where needed in the sources files of the iMX BSPs coming from Freescale. Surprisingly this takes just a few minor changes.

Surely it would be nice if Freescale would solve these build issues directly in their BSPs to improve such compatibility issues in multi platform scenarios with different target CPU cores.

So much for project hopping from Freescale iMX (ARM core) to MIPS II FP. You mean I have not explained how this is solved in x86 or SH? Correct! I haven't... But there always has to be some magic left over. Especially at this time of the year...

-- Oliver Merkel

"Christmas waves a magic wand over this world, and behold, everything is softer and more beautiful." --N. V. Peale


Read more! Post this to a friend!

Windows Embedded CE: touch considerations part II

Hi Folks,

in my last post I talked about improving the touch driver by replacing the timer (SYSINTR_TOUCH_CHANGED) with a Sleep(). Today I want to point out another touch driver improvement.

When using the touch screen the CPU utilization increases dramatically, this of course results in a much worse system performance. After some research and some measurements you will find, that the increase in CPU utilization is mainly caused by busy waits which are used frequently throughout the touch driver (e.g. XllpOstDelayMicroSeconds() in Mainstone BSPs).

Replacing the busy waits with Sleep() will solve this problem while still keeping your touch driver responsive enough.

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

Tuesday 15 December 2009

Windows CE Chat Transcript

If you were hoping to find the chat transcript from the December Windows CE Chat, I'm afraid I have to tell you that it did not take place - I wonder if the CE Team will be there next week :-)

So long and thanks for all the fish!

Read more! Post this to a friend!

CommCtrl with R3 Touch broken after QFE update (Fatal error U1077)

A while ago Jochen already posted some info on Touch Gestures feature introduced in R3. So if this is coming along with Windows CE 6.0 R3 then there must be a situation to mess up things from R2 and R3.

And here it is:

Get the R3 iso image from Microsoft download center. Nearly 1.2 GB of data. But at least if that stuff in your installation gets broken you get all data to do a repair then.

Run R3 update being an incremental install to an existing Windows CE 6.0 R2 and voilá: It's working.

Now we learned one thing: Update everything to have the latest changes available! So get the QFEs!

But be aware: This might break your R3 install. If you have already done so then each blddemo will run into the following situation. Your build.log will show a fatal error:

commctrl.lib(aygutils.obj) : warning LNK4217: locally defined symbol SHCreateDefaultGradient imported in function "public: static int __cdecl AygUtils_t::SHGradientInit(struct tagSHGRADIENT *,int,unsigned short const *)" (?SHGradientInit@AygUtils_t@@SAHPAUtagSHGRADIENT@@HPBG@Z)
commctrl.lib(aygutils.obj) : warning LNK4217: locally defined symbol SHGetSystemMetrics imported in function "public: static int __cdecl AygUtils_t::SHGradientInit(struct tagSHGRADIENT *,int,unsigned short const *)" (?SHGradientInit@AygUtils_t@@SAHPAUtagSHGRADIENT@@HPBG@Z)
commctrl.lib(lvgesture.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl TouchPerf::ReleaseSession(void)" (?ReleaseSession@TouchPerf@@SAXXZ) referenced in function "public: __cdecl GestureTriggeredScrollCtrl::~GestureTriggeredScrollCtrl(void)" (??1GestureTriggeredScrollCtrl@@QAA@XZ)
commctrl.lib(lvgesture.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl TouchPerf::AcquireSession(void)" (?AcquireSession@TouchPerf@@SAXXZ) referenced in function "public: __cdecl GestureTriggeredScrollCtrl::GestureTriggeredScrollCtrl(void)" (??0GestureTriggeredScrollCtrl@@QAA@XZ)
C:\WinCE600\OSDesigns\???_MIPSII_FP\cesysgen\oak\target\MIPSII_FP\debug\commctrl.dll : fatal error LNK1120: 2 unresolved externals
NMAKE : fatal error U1077: 'link' : return code '0x460'
Stop.
NMAKE : fatal error U1077: 'C:\WINCE600\sdk\bin\i386\nmake.exe' : return code '0x2'
Stop.

This one can not be resolved with turning on/off catalog item selections or something like that. The current QFEs simply break your R3 install and overwrite some files but not all being related to Touch Gesture or other R3 features.

This will most likely be fixed in the upcoming QFEs again but meanwhile just re-run the R3 rollout msi (Microsoft Installer) included in the ISO image and select repair from the corresponding menu.

Until now I did not encounter any side effects after using this R3 repair.

Unfortunately it's hard to say if the R2 tree is completely merged in R3 or if some side effect might occur. If I find some time I will check that. But most likely best way is to wait for the next QFEs to get that properly fixed.

At least the repair will allow you to continue work on R3 development that way.

Merry Christmas and Best Wishes for a happy new year, and all your R2 and R3 projects...

--- Oliver
Read more! Post this to a friend!

Switching target OS from project to project

Ho ho ho and joyous Season Greetings,

from time to time I come across the situation to help out in projects with different Operating Systems. And guess what... sometimes one of the Operating Systems is a Microsoft Windows CE / Windows Mobile / MS Auto etc. Now assume that first such a switch of the target OS from one project to the other is happening and that second it is most likely that both Operating Systems are mainly developed in C/C++.

So we have compilers, linkers and other parts of the tool chain including make tool, etc. Thus we all (including you) run into issues that the environment variables of the development host have most likely the same naming even if we switch the compilers, linkers, etc.

You probably just came across such a situation if e.g. the Visual Studio Platform Builder Plugin for Windows CE 6.0 Rx behaves like that:

Starting Build: blddemo -q

Some output in Build Output window during sysgen phase but less than expected... There were build errors and build.log just says

Starting sysgen phase for project ( common )
Found localized resources for Languages ( 0404 0407 0409 040C 0410 0411 0412 0413 0416 0419 041D 0804 0C0A)

Microsoft (R) Program Maintenance Utility Version CE-6.00.1893.0
Copyright (C) Microsoft Corporation. All rights reserved.

NMAKE : fatal error U1065: invalid option '-'
Windows CE Version (Release) (Built on Jun 30 2006 16:52:46)
Stop.

So what can possibly go wrong at that early build phase? If this is correlated to the same reason I am thinking of then this will happen in all your BSP building solutions yet.

The failure results from an nmake sysgen invoked in C:\WINCE600\PUBLIC\COMMON\CESYSGEN. Having a short look into the makefile reveals that from included cesysgen.mak the rules preproc and postproc described in makefile should be executed.

But where's this !"§$ option of that nmake error message above coming from? You never set that option?

On build console (build window) do a set MAKE. Probably you get something like:

MAKEFLAGS=-Id:/??????/target/????/usr/include

This could have been set up by other build environments and is normally or most likely not used in a Windows CE / Windows Mobile environment. If you clearly identify this to belong to some other target operating system than Windows CE / Windows Mobile and it is not used right now then remove this environment variable and run your build command again.

set MAKEFLAGS=
blddemo -q

This is most likely doing the trick...

To wish you the special gifts of this holiday season - Peace, Joy, Lasting Happiness and a working tool chain to build your favorite OS.

-- Oliver
Read more! Post this to a friend!

Monday 14 December 2009

Windows Embedded CE touch driver consideration

Hi folks,

As you might have noticed, the Windows Embedded CE touch driver uses TWO interrupts. One interrupt (SYSINTR_TOUCH) to wait for the user to touch the screen, while the other interrupt is a timer (SYSINTR_TOUCH_CHANGED). Upon its expiration the touch driver determines if the touch is still pressed, if so the coordinates are measured and the timer is reset; if not the touch driver switches back to the first interrupt to wait for the user to press the screen.

This is a relict from Windows CE versions prior to 3.0 when the systemtick was still 20ms. Hence the systemtick was too long to be used as a timer for the touch screen.

However, this implementation sometimes leads to unexplainable behavior/errors due to the fact that interrupt events are queued differently in your system then regular events. An interrupt service thread (IST) should therefore only consist of ONE (and only ONE) WaitForSingleObject() as well as ONE (and only ONE) InterruptDone()! Unfortunately this implementation uses TWO WaitForSingleObject() calls in its IST!

On top of that, it also utilized unnecessary resources namely the extra timer.

An elegant solution would be to get rid of the extra timer and use a Sleep() in its stead:


static ULONG TouchPanelpISR(PVOID Reserved)
{
...

static BOOL fStartIST = TRUE;

...

while(!bTerminate)

{

if(CurrentDown)

{

...

Sleep(5); // use appropriate value here

}

else

{

// don't call InterruptDone the first time

// as this is done by InterruptInitialize

if (!fStartIST)

{

InterruptDone( gIntrTouch );

...

}

else

{

fStartIST = FALSE;

}

WaitForSingleObject( hTouchPanelEvent, gdwTouchIstTimeout );

}

...

}

...

}

Stay tuned for part II!

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

Friday 11 December 2009

LAST Microsoft Windows Embedded CE! Live chat –> in this year :)

MS is hosting a live chat about Windows Embedded CE. Do you have tough technical questions regarding Windows Embedded CE for which you're seeking answers? Then join the upcomming chat!

This is a great opportunity to chat with members of the Windows CE development team and give us a great opportunity to communicate with MS and ask questions about development issues.

So don't forget to put the date in your schedule and join it.

Title: Windows Embedded CE Live Chat!
Date: Tuesday, December 15, 2008 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

Have fun!


Read more! Post this to a friend!

Thursday 10 December 2009

Windows CE QFEs for month of November 2009 arrived

the latest Windows CE updates have been recently released and are available for download (the Download Site is up-to-date :) ) .
Some issues (especially the compiler fix for Windows CE 6.0) have been resolved, no time to loose and get them now! More information for each update is provided in the Readme document available after the individual update(s) has been installed.

Windows CE 5.0 Monthly Update (November 2009)

Follow this link and download the set of updates for Windows CE 5.0 released during the period of November 1 - November 30, 2009.

Fixes made in this update:

Component: COMM

  • 091123_KB974907 - Closing sockets may cause exceptions in some processes such as device.exe or the TCP/IP

Windows CE 6.0 Monthly Update (November 2009)

Follow this link and download the set of updates for Download this set of updates for Windows Embedded CE 6.0 R3 environment.

Component: Compilers

  • 091130_KB950561 - Compiler may incorrectly issue C4819 warning about invalid multi byte characters.

Component: FSD

Component: Menu

  • 091113_KB977404 - This update addresses the issue with the main Menu item not getting highlighted when selected.

Component: .NET CF 2.0 SP2

Component: Pictor

  • 091118_KB977315 - This update addresses the issue with the scroll bar that may occur when connecting to Windows Embedded CE 6.0 device from desktop computer using Network Projector.

Component: SQLCE

Component: WININET

  • 091130_KB975804 - Updated files: The system may get slow when using the WinInet APIs to download files from network.

Keep your OS up to date!


Read more! Post this to a friend!

Monday 7 December 2009

Missing Wince 5.0 QFE Link for October 2009

Hello guys,

Unfortunately Microsoft seems still to have problems with updating their Download Site, but there is a very important quickfix for all (Wince 5.0) ATL users in the october update:

A memory leak may occur when calling IDispatch::Invoke(). The file(s) with the new source code changes for this component can be found in the directory %_WINCEROOT%\:
others\atl\include\atlcom.h

Download this set of updates for Windows CE 5.0 released during the period of October 1 - October 31, 2009.

You can find the October 2009 Update here.

Keep your OS up to date!


Read more! Post this to a friend!

EB delivers Satellite-Terrestrial Smartphones

If you have been following our blog you may have read the different posts around Terrestar's project for a Sattelite-Terrestrial Service. The last news around this was during the middle of this year when Terrestar successfully deployed a satellite allowing the first calls to be made (read and watch here).

As of next year "EB will be responsible for delivering complete products to TerreStar based on the EB-designed satellite-terrestrial reference device" running Windows Mobile® 6.5.

Read the full news here and here.

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

Friday 4 December 2009

What's wrong with the KITL_RETAILMSG() output?

When you setup a new BSP, your first challage will be getting KITL to work.
Some debug outputs might be helpful. But some of the KITL_RETAILMSG() "%" outputs are wrong and therefore will not appear on your terminal.
A look at the source code reveals the truth;
KITLOutputDebugString() doesn't support all the printf() format placeholders:

* @func void | KITLOutputDebugString | Simple formatted debug output string routine
*
* @rdesc none
*
* @parm LPCSTR | sz,... |
* Format String:
*
* @flag Format string | type
* @flag u | unsigned
* @flag d | int
* @flag c | char
* @flag s | string
* @flag x | 4-bit hex number
* @flag B | 8-bit hex number
* @flag H | 16-bit hex number
* @flag X | 32-bit hex number
*

Replace e.g. "%08x" by "%X" and the numbers are fine!

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

Thursday 3 December 2009

Embedded Software Engineering Kongress 2009 vom 08. – 10.12.2009 in Sindelfingen

Hallo zusammen,

es ist mal wieder so weit: vom 08. bis zum 10. Dezember 2009 findet der ESE Kongress in Sindelfingen statt. Mit 90 Fachvorträgen und 10 Kompaktseminaren aus Entwicklung, Forschung, Lehre und Management bietet der ESE Kongress reichlich Stoff für neue Ideen, Lösungswege und angeregte Diskussionen.


In diesem Rahmen werde ich am 10. Dezember um 9:45 einen Vortrag zum Thema: „Einsichten in die Entwicklung mit Windows Embedded CE 6.0 R3“ halten. Darin werde ich unter anderem die für Embedded Lösungen so wichtige Real-Time Fähigkeit von Windows Embedded CE erörtern. Außerdem werde ich auf dem Stand von Microsoft anzutreffen sein.

Ich hoffe Sie sind neugierig geworden. Lassen Sie mich in den Kommentaren einfach wissen, ob Sie mich auf dem ESE Kongress treffen möchten um über Windows Embedded oder sonstige Themen zu reden. Ich freue mich auf Sie!

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

Tuesday 1 December 2009

Bit Twiddling for Dummies

Ever been annoyed by number conversion?

May be it's time to look at this tiny tool. During the last years it has evolved from a simple hex-dec converter to a quite powerful gadget. And depart from cooking and dishwashing you can use it for your everyday twiddling.




Here are some screen shots:


You can select a file which describes bits of a 32 bit value. The list view at the right side shows the status of the bits or bit masks.


Load a identifier-value list (here "VK_xx.lst") and simply select one of the defined values in the drop down list below. The value controls will be updated immediately - naturally

Convinced? You can download a setup executable or the standalone executable from http://cid-0eb8b2026ec93d96.skydrive.live.com/browse.aspx/.Public/BitTwiddler

or

BitFummler, Download bei heise

Oh, something I forgot to mention (one of my colleagues uses BitTwiddler since 2003 and didn't know :-) : In the bottom edit control you can enter c-like syntax, with variables 'a'-'z' where 'x' is the currently displayed value. The c-parser supports for/while/if/else statement, all c (?) operators (except pre-increment/-decrement etc.).

And if you want to monitor a value displayed in another applications control window just click the "Monitor" button and move the top of the arrow to the control.

Try it and have fun :-)

Read more! Post this to a friend!

Thursday 26 November 2009

Microsoft Embedded Roadshow 2009

Ende November / Anfangs Dezember findet die Microsoft Embedded Roadshow - präsentiert von Elbacom - in verschiedenen Städten in der Schweiz statt.

Diese halbtägige Veranstaltung richtet sich an Entwicklungsleiter, Entwickler und Entscheider, die sich einen aktuellen Überblick über das Produkt Portfolio von Microsoft Embedded verschaffen wollen. Zusätzliche Informationen über technologische Neuheiten und Markttendenzen für den Embedded und Industriellen Markt runden diese Informationsveranstaltung ab.

Weitere Informationen finden Sie unter: http://www.embeddedroadshow.ch/

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

Wednesday 25 November 2009

Enable wMMX2 for XScale

Hello,

if you need the wMMX2 Instruction Set for your XScale processor in your assembler code, add the following line in your sources file .

ADEFINES=$(ADEFINES) -cpu XSCALE

bye
Read more! Post this to a friend!

Missing QFE Links for September and October 2009

I was in the Embedded Chat yesterday wanting to get some further information on an L2 Cache issue addressed in one of the recent QFE's for Windows CE 6.0 - that's right recent; to be exact it was addressed in the October Update.

Unfortunately Microsoft seems to have problems with updating their Download Site as the most recent download you can find there is the August 2009 Update.

You can find the September 2009 Update here
and
the October Update here.

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

SPS / IPC / Drives Impressions

Hi folks,

Here are a couple of impressions from the Microsoft booth (Hall 7a-150) where EB has a Partner Pod.

Just come on by!


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

Transcript from yesterdays Windows Embedded CE Live Chat

Hi folks,

Read more to see the transcript form yesterdays Windows Embedded CE Live Chat where you could ask the experts:

Current chat room activity:
More Answers...
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.

--------------------------------------------------------------------------------

msft_davbo (Moderator)[17:59]: 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.

mskim_MSFT (Expert)[18:01]: Hello, this is mskim from Windows CE JDP team.

RajeevDubey[MS] (Expert)[18:01]: Hi, this is Rajeev Dubey, Program Manager for Bluetooth.

mikehall_ms (Moderator)[18:02]: Hi, I'm Mike Hall, Software Architect

Sing Wee [MS] (Expert)[18:05]: Hello, I'm Sing Wee, member of the CoreOS/BSP Test Team.

FBlanq_MSFT (Expert)[18:05]: Hi, I'm Francisco Blanquicet, SDET with CoreOS/WinCE

msft_davbo (Moderator)[18:05]: Chat is started so ask any questions you may have about Windows CE.


rajran[MSFT] (Expert)[18:06]: Hi , I'm Rajeev Rangappa, PM in Core Team

kurtken_msft (Expert)[18:09]:
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)

kurtken_msft (Expert)[18:13]:
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?

kurtken_msft (Expert)[18:16]:
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.

kurtken_msft (Expert)[18:17]:
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.

kurtken_msft (Expert)[18:18]:
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.

mskim_MSFT (Expert)[18:22]:
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.

mskim_MSFT (Expert)[18:23]:
A: http://msdn.microsoft.com/en-us/library/ee502772.aspx

mskim_MSFT (Expert)[18:24]:
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

Travis Hobrla [MS] (Expert)[18:25]:
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)[18:25]: Ack

Travis Hobrla [MS] (Expert)[18:25]: Answered the wrong question, one moment!

Travis Hobrla [MS] (Expert)[18:26]:
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.

Sing Wee [MS] (Expert)[18:26]:
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.

mskim_MSFT (Expert)[18:26]:
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)[18:27]: @winceLover: use "Ask the Experts"

Travis Hobrla [MS] (Expert)[18:29]:
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-> 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

Travis Hobrla [MS] (Expert)[18:32]:
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.

Travis Hobrla [MS] (Expert)[18:33]:
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!

Travis Hobrla [MS] (Expert)[18:37]:
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.

Sing Wee [MS] (Expert)[18:38]:
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?

Sing Wee [MS] (Expert)[18:39]:
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.

msft_davbo (Moderator)[18:40]:
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.

kurtken_msft (Expert)[18:40]:
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

mskim_MSFT (Expert)[18:40]:
Q: Prabu, what's UVC stack?

ks [MS] (Expert)[18:40]:
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?

Travis Hobrla [MS] (Expert)[18:41]:
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.

Sing Wee [MS] (Expert)[18:44]:
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.

Sing Wee [MS] (Expert)[18:47]:
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

Travis Hobrla [MS] (Expert)[18:49]:
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.

msft_davbo (Moderator)[18:49]:
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.

ks [MS] (Expert)[18:50]:
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.

Travis Hobrla [MS] (Expert)[18:51]:
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' ?

Travis Hobrla [MS] (Expert)[18:53]:
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.

Travis Hobrla [MS] (Expert)[18:56]:
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?

Sing Wee [MS] (Expert)[18:56]:
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

msft_davbo (Moderator)[18:57]:
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.

Sing Wee [MS] (Expert)[18:57]:
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.

Sing Wee [MS] (Expert)[18:58]:
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

Travis Hobrla [MS] (Expert)[18:59]:
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.

ks [MS] (Expert)[18:59]:
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)[19:00]: Hello everyone, we are just about out of time.

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

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. We’ll see you again for another chat next month.

If you still have unanswered questions, let me suggest that you post them on one of our newsgroups on http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?guid=a36dcdca-1116-4471-a19a-5eb263323e93

-Windows Embedded CE 6.0 R3 Now Available!


You can also find the transcripts from the October chat here and the September chat here - Microsoft is lagging behind getting these online.

Older chat transcripts can be found here.

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

Monday 23 November 2009

The fastest way to activate COMPILE_DEBUG=1


...is simply to select it in the menu. Look!
Huuuh? Your platform builder doesn't offer this option? What a shame! Okay, let's tune it up with a small add in! It won’t hurt – and besides, I already did the work: Please find it here.
I provide it with source code, therefore one appeal: Feel free to modify and improve it, but please share it with us and leave a comment where we’ll find it. Thanks! Also drop me a line if you find it useful at all, then I’ll think about more...

I also added shortcuts to open the release directory, reginit.ini and ce.bib...

One remark: "Compile as debug" is set globally in Visual Studio, so deactivate it before you do a blddemo.


Enjoy it!
Stefan

Background: COMPILE_DEBUG

This macro definition specifies that Build.exe must pass debug macro definitions to the linker and compiler even if WINCEDEBUG is set to retail. If COMPILE_DEBUG is set when WINCEDEBUG is set to retail, the libraries linked are the release libraries.

http://msdn.microsoft.com/en-us/library/ee478748.aspx



Read more! Post this to a friend!

Friday 20 November 2009

Meet Damian and me @ SPS/IPC/Drives

Hi folks,

Next week the SPS/IPC/Drives – the exhibition for electric automation technology – will take place at the Exhibition Center Nürnberg.

Come and meet Damian and me at the Microsoft Booth 7a-150 where Elektrobit will have a Partner Pod.

I will also hold a forum presentation about “Creating embedded devices with a modern UI”.

We are looking forward to see you there, chat about Windows Embedded or other topics, have a café, etc… Of course you can also talk to the Microsoft folks…

Have fun and see you there!

Read more! Post this to a friend!

Tuesday 17 November 2009

.NET Micro Framework open sourced under Apache 2.0 license

Hi folks,

good news for all people interested in .NET Micro Framework. It's moving forward again.
It's all over town already - but now it's official.

Microsoft to Open Source the .NET Micro Framework

Concerning Peter Galli (Open Source Community Manager for Microsoft's Platform Strategy Group) it was announced yesterday on the PDC that .NET Micro Framework will be available under under Apache 2.0 license. Unfortunately the source for the Cryptography library and the TCP/IP stack will not be disclosed.
Let's see how Microsoft will support the community in future.

What's your opinion on the future of .NET Micro Framework - is there a market / product out there for this cool piece of technology?

Let me here your voice ...
Read more! Post this to a friend!

Monday 16 November 2009

Microsoft Windows Embedded CE! Live chat – Don’t miss it!

Hi Folks,
MS is hosting a live chat about Windows Embedded CE. This is a great opportunity to chat with some members of the Windows CE development team and allow us to communicate with MS and ask questions about development issues.

So don't forget to put the date in your schedule and join it.

Title: Windows Embedded CE!
Date: Tuesday, November 24, 2008 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

Have fun!


Read more! Post this to a friend!

Tuesday 10 November 2009

Windows Embedded CE: nk.nb0 file

Hi folks,

today I want to focus on the nk.nb0 file. The result of a successful build of your OSDesign will be your run-time image (normally nk.bin) in your _FLATRELEASEDIR. In some cases you also have an nk.nb0 file in your _FLATRELEASEDIR after a successful build.

But what exactly is the nk.nb0 file? How can I control its creation? And why do I need the nk.nb0 file, anyhow?

The nk.nb0 file is a raw image file in Absolute Binary Data (ABF) file format which is a byte-for-byte mirror image of your runtime-image.

All you need to do in order to get the nk.nb0 file as outcome of a successful build (make image phase) is to specify ROMSTART, ROMWIDTH, or ROMSIZE in the CONFIG section of your Config.bib.

NOTE: ROMSTART and ROMSIZE should correspond to your RAMIMAGE start address and RAMIMAGE size settings in the MEMORY section of your Config.bib respectively.

The resulting nk.nb0 will basically be the “unpacked” nk.bin file with tailing zeros and it will be exactly of size ROMESIZE. In some cases you will get a warning during the make-image phase of your build process stating something like: warning, image exceeded… In this case you will not only find an nk.nb0 but also an nk.nb1 file in your _FLATRELEASEDIR. In this case you need to increase both your RAMIMAGE size and your ROMSIZE in your Config.bib. But don’t forget to change any succeeding regions in the MEMORY section of your Config.bib file accordingly to avoid overwriting these regions!

So how can we use the nk.nb0 file? We can use it for JTAG-flashing of our image. Or if our boot-concept supports it we can use the nk.nb0 file to be flashed in NOR flash by our EBoot without the need of Filesystem. The advantage of using the nk.nb0 file would be that we can simply copy it to RAM and run it directly as it is a raw file. Of course it would be good idea to use some sort or check sum to check if our nk.nb0 is intact.

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

Wednesday 4 November 2009

TechEd 2009 in Berlin

Just a quick reminder that next week in Berlin not only "The Fall of the Wall" is being celebrated but also 1000 of attendees will be visiting Microsoft's TechEd 2009.
But, I'm sure most of you are aware of this.


What might be new however is that - and I really am delighted to say this - I will be holding a Presentation together with Olivier Bloch, Embedded Evangelist, around "Windows Embedded from Sensors to Servers" next Wednesday, November 11th from 10:45 - 12:00.

Here's a short abstract:
Industrial and automotive solutions are nowadays merely a matter of software. The software retrieves data from sensors, analyses the data, drives actuators, allows entities of the industrial or automotive system to communicate and synchronise with each other, runs visualisations and monitoring allowing interaction with the operator, talks to servers, databases and services. As a desktop or enterprise developer or as an IT Pro you will be surprised how much your skills will transfer to this domain and enable modern and existing solutions. During this demo-packed session see how Windows Embedded technologies, fitting directly into Microsoft development tool chain, can be used to develop real-time distributed industrial systems and services.

You will also be able to find me in the TLC Area on Monday and Tuesday.

Call to action:
If you do happen to be visiting TechEd, drop by the TLC Area or come and listen to Olivier and me present "Windows Embedded from Sensors to Servers".

Look forward to seeing you!

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

Friday 30 October 2009

Windows Embedded CE: Build Considerations

Hi folks,

When building your Windows Embedded CE OS image you might have noticed, that a lot of components are built even though they are not part of your image neither do you need them later on. This behavior takes up precious time, and space on your hard drive.

Having realized this behavior, it of course raises a couple of questions; How come those components that I don’t need are being built? And more importantly, is there a way to avoid building those components?

As you might have guessed, YES! You can avoid building the unnecessary components and it is quite easy, too! Simply set the environment variable SKIPBUILD in each applicable SOURCES file (e.g. set SKIPBUILD=1).

Make sure you use the respective SYSGEN variable set by selecting the appropriate catalog item in connection with the SKIPBUILD environment variable:

!if "$(SYSGEN_MY_VAR)" != "1"
SKIPBUILD=1
!endif


Et voilá, problem solved!

Have fun!

PS:
As stated in the comment section, there might, however arise one problem when using the SKIPBUILD environment variable:

Your sources file will still get pre-processed which could only cause a problem when you have two (or more) sources files generating a dll/exe/lib with the same name:

Your fist sources file (without SKIPBUILD condition) will generate the dll/exe/lib. But the second sources file (with SKIPBUILD condition), due to being pre-processed deletes your just build dll/exe/lib and due to the SKIPBUILD condition does not regenerate the dll/exe/lib.

Thanks for the useful input!
Read more! Post this to a friend!

Wednesday 28 October 2009

Windows CE & Mobile Transcript October 2009

Hi folks,
Just in case you missed the Live chat yesterday you can find the transcript of yesterday's chat here.

KarelD_MSFT (Expert)[2009-10-27 11:58]: Karel Danihelka - Developer in Partner Response Team.

davbo_msft (Moderator)[2009-10-27 11:59]: Our chat today covers the topic of Windows Embedded CE & Windows Mobile!

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.

davbo_msft (Moderator)[2009-10-27 11:59]: We are pleased to welcome our Experts for today's chat. I will have them introduce themselves now.

davbo_msft (Moderator)[2009-10-27 11:59]: We are pleased to welcome our Experts for today's chat. I will have them introduce themselves now.

Sing Wee[MS] (Expert)[2009-10-27 12:0]: Hi, I'm Sing Wee, part of the CoreOS/BSP Test Team.

rajran[MS] (Expert)[2009-10-27 12:1]: Hi , I am Rajeev Rangappa, PM in CoreOS team.

RajeevDubey[MS] (Expert)[2009-10-27 12:3]: Hi, I am Rajeev Dubey, Bluetooth Program Manager.

MariNe_MSFT (Expert)[2009-10-27 12:3]: My name is Mariana Nenova - SDET in the Shell team.

MikeThom [MS] (Expert)[2009-10-27 12:3]: Hi I am Mike Thomson, Group Manager from Windows Embedded CE

Sue Loh [MS] (Moderator)[2009-10-27 12:3]: Hi, I'm Sue Loh, a developer on the Windows Mobile tools team (with past experience on the kernel and file system). I hope we can answer some of your questions today!

FBLANQ_MSFT (Expert)[2009-10-27 12:3]: Hi, I'm Francisco Blanquicet, part of the CoreOS/BSP team.

mskim_MS (Expert)[2009-10-27 12:4]:

Q: Regarding Silverlight Runtime in R3 and Expression Blend 2 - Expression Blend 2 appears to be unable to cope with the CacheMode="BitmapCache" tag that's needed for off-screen rendering in the silverlight runtime. Am I doing something wrong?

A: Andrew, CacheMode is from Silverlight3, we added this feature into Cashemere for a better performance but Expression Blend2 doesn't know about this SL3 property.

GLanger_MS (Expert)[2009-10-27 12:5]: Hi, I'm Glen Langer, lead PM for Core and BSPs.

kurtken_msft (Expert)[2009-10-27 12:6]:

Q: Can you point me to any documentation on the "threaded" SMS-message view in tmail.exe; I am having trouble adding my custom context-menu extension to it

A: Are your referring to the Windows Mobile SMS application? This chat is for Windows CE.

MS_Dinglu (Expert)[2009-10-27 12:7]: Hi, I am Dingding Lu, I am in CoreOS/BSP test team

mskim_MS (Expert)[2009-10-27 12:7]:

Q: So if I use Blend 3 will this help or just cause more problems?

A: You can't use Expression 3 with Cashmere, please use Blend2. You will need to add CacheMode only for the device XAML not in Blend2 XAML.

kurtken_msft (Expert)[2009-10-27 12:8]:

Q: Regarding mdd/pdd flash driver. There is some blocks that the MDD allocates for managing the data. Is it save to backup and recover those blocks? Where can we get info about them?

A: Can you give more information on what it is you are trying to do? The MDD's management of blocks is opaque because if it ever changes the only updates will be internal. is there a reason you need to access the internal structures?

Sue Loh [MS] (Moderator)[2009-10-27 12:8]:

Q: Hi! We are developing an app for a new handset running WM6.5 and are having problems when starting up first time. We are built into image and start up at boot since we have set correct reg keys in HKLM\Init. But one test case fails, namely to get reg notif

A: Can you explain a bit better what you mean by your test case fails to get reg notif? Who is supposed to change the registry key, when? Who is waiting on it, when?

kurtken_msft (Expert)[2009-10-27 12:9]:

Q: Hi! We are developing an app for a new handset running WM6.5 and are having problems when starting up first time. We are built into image and start up at boot since we have set correct reg keys in HKLM\Init. But one test case fails, namely to get reg notif

A: Hi Simon. This chat is for windows CE, and does not cover windows Mobile. The best thing for you to do is contact your WM representative that licenses WM to you to get support.

MikeThom [MS] (Expert)[2009-10-27 12:9]:

Q: Does Wince6.0 R3 include iPOD support?

A: No. There is no integrated support in Windows Embedded CE. There is an automative kit that does supply support for head-units.

KarelD_MSFT (Expert)[2009-10-27 12:9]:

Q: Regarding mdd/pdd flash driver. There is some blocks that the MDD allocates for managing the data. Is it save to backup and recover those blocks? Where can we get info about them?

A: It depends what do you want to achieve, but in most cases answer will be no. I would recommend to backup flash volume on logical level, not physical one. So file can be restored on different flash (with different bad blocks etc).

kurtken_msft (Expert)[2009-10-27 12:9]:

Q: Does Wince6.0 R3 include iPOD support?

A: When you say "support" do you mean being able to connect an IPod to a Windows CE 6.0 device that has USB host support?

kurtken_msft (Expert)[2009-10-27 12:9]:

Q: Yes, I am referring to Windows Mobile SMS application. I thought this chat includes Windows Mobile topics. Sorry, if that is not the case.

A: No. please contact your support channels for windows mobile through your WM licensing representative.

mskim_MS (Expert)[2009-10-27 12:10]: Tom, please use the "Ask Expert" command so we can answer your question.

Sue Loh [MS] (Moderator)[2009-10-27 12:11]: Q: We listen for changes to HKLM\System\State\Phone , "Missed Call Count" however at this first start up we never get such notifications. Rebooting will make it work as expected. Any ideas why it does not work the first time?
A: You're saying the entire first boot, you never get notifications. Right? Not that you miss the very first notification of the very first boot, and everything else works after that. Assuming I got it right -- well you need a registry key in order to wait. Are you sure the key exists at first?

Sue Loh [MS] (Moderator)[2009-10-27 12:11]:

Q: We listen for changes to HKLM\System\State\Phone "Missed Call Count", however at this first start up we never get such notifs. Rebooting will make it work as expected.

A: You're saying the entire first boot, you never get notifications. Right? Not that you miss the very first notification of the very first boot, and everything else works after that. Assuming I got it right -- well you need a registry key in order to wait. Are you sure the key exists at first?

KarelD_MSFT (Expert)[2009-10-27 12:13]:

Q: Does Wince6.0 R3 include iPOD support?

A: iPod expose itself as normal block device and as such it is supported. If you are looking for stream interface there is support in Microsoft Windows CE for Automotive, but you can add support yourself if you are able to get agreement from Apple and authentication chip.

davbo_msft (Moderator)[2009-10-27 12:13]:

Q: Actually, the title of this was presented as "Windows Embedded CE AND Windows Mobile", so that is not the case then?


MikeThom [MS] (Expert):

Q: [17] http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.windowsce.platbuilder&tid=d5fa66de-0167-4a1f-932f-273fba9b29e8&cat=&lang=&cr=&sloc=&p=1

A: I will have someone from the QFE team look into this.

Sue Loh [MS] (Moderator): Sorry hoongyuin, we're only experts in Windows CE, not desktop Windows.

MikeThom [MS] (Expert):

Q: [16] Morning, I have a question regarding the Sept QFE '09 which causes ActiveSync issues I posted but got no answer? I am seeing more people posting on similar issue and on CE6.0 as well do you have any more info on this issue?

A: I will have someone from the QFE team look into this.

RajeevDubey[MS] (Expert):

Q: [18] Hello, I have a CSR bluetooth module to manage under WinCE and I would like to use the HCI_CustomCode to send some proprietary commands. Please could you tell me how to fill pcall for HCI_CustomCode (I did not found in msdn documentation)

A: Hi Butterfly, Please email me your request and I will get back to you after reviewing it with our dev team. Please provide an example of what you are trying to accomplish so we can address your concern properly.

KarelD_MSFT (Expert):

Q: [19] I´m already referring to the logical blocks. I want to know how to I get back to a "last well known" state backup of the filesystem (I´m using TExFAT). I am having filesystem corruptions due to hard power loss cycles.

A: Correct procedure in such situation is dismount all file systems from block device, erase, create partitions and write sectors from backup.

mskim_MS (Expert)[12:26]:

Q: [20] XAML Runtime Open GL Render Plugin: As shipped this supports OPENGL ES 2.0. My hardware has ES 1.1 support. Does the render plugin *NEED* any ES 2.0 features or should it be possible to convert the plugin for ES 1.1?

A: Andrew, this XAML renderer plug-in uses OpenGL ES 2.0 features. Since the plug-in is provided as public code, you can take a look at it.

RajeevDubey[MS] (Expert)[12:27]:

Q: [22] Thank you RajeevDubey but at which address, can I email ?

A: rajeevdu@microsoft.com

mskim_MS (Expert)[12:27]:

Q: [20] XAML Runtime Open GL Render Plugin: As shipped this supports OPENGL ES 2.0. My hardware has ES 1.1 support. Does the render plugin *NEED* any ES 2.0 features or should it be possible to convert the plugin for ES 1.1?

A: One of the ES 2.0 feature EXR uses is the Shader.

Sue Loh [MS] (Moderator)[12:32]:

Q: [24] Nothing in reg tree missing except actual value name="Missed call count" as defined in snapi.h. HKCU\System\State\Phone key is present

A: Hmm, if your code is successfully opening the key and holding a notification handle on it, and that notification handle isn't getting notified when the value is created, then that sounds like a bug. The only thing you could do about it is get in touch with our support. If it really is a bug then the support cost is supposed to be free, I believe (but you might want to double check). I would double check that your code is successfully opening these handles, just in case HKLM\System\State\Phone is getting created AFTER your code runs.

RajeevDubey[MS] (Expert)[12:35]:

Q: [25] Thank you, I email you my request about HCI_CustomCode.

A: I have not received your mail yet. Will confirm once I get it.

kurtken_msft (Expert)[12:36]:

Q: [26] I saw a question last month about if FMD_WriteSector() fails on NAND, and I was unclear about one point. After compation, does the FAL mark the block as bad, or try to erase it and reuse it? Same behavior for Flash MDD?

A: when a writesector fails, no attempt to write to the block will occur after that. As far as I know, this includes an erase attempt. The block may be read from, but will not be written to. if compaction moves the sectors out of the block that is now 'bad', then that block will not be used again even for reads.

Sing Wee[MS] (Expert)[12:39]:

Q: [32, 34] Is there a suitable version of conmanclient2 for ce 6 with two VS2005 running at the same time (One with PB and another one in app dev mode)? I get many edm.exe messages in PB when doing with the version from standard sdk 5 of conmanclient2?
(I´m debugging an application that tests the driver)

A: Is your application native or managed?

davbo_msft (Moderator)[12:40]:

Q: [21] Using Windows Media Player Settings.setMode, what is the proper way to call it without it returning a E_INVALIDARG? When I call it with BSTR mode = L"shuffle" (mode, FALSE) or (mode, TRUE), they both return an error and indicates 0x80070057 => E_INVALIDAR

A: WMP OCX 7.0 http://msdn.microsoft.com/en-us/library/bb821536.aspx. I don't see setMode exposed on the interface. For Shuffle you'd need to implement that outside of the OCX.

mskim_MS (Expert)[12:40]:

Q: [35] EXR OGLES2.0: What processor did you use to test the XAML OGL Render plugin? It would be good for us to test the EXR with Open GL without having to recode for OGL ES 1.1.

A: We have tested the OGL plug-in with TI OMAP 3530 and nVidea Tegra APX 2600 but also knows that it works with many other platforms.

davbo_msft (Moderator)[12:41]:

Q: [23] G. I am calling it via aninstance of IWMPSettings->setMode(mode, bValue);

A: OCX 7 IWMPSettings Interface http://msdn.microsoft.com/en-us/library/bb821471.aspx - setMode not a supported method.

Sue Loh [MS] (Moderator)[12:42]:

Q: [9] We listen for changes to HKLM\System\State\Phone "Missed Call Count", however at this first start up we never get such notifs. Rebooting will make it work as expected.

A: Yeah, I'd expect HKLM\System\State and its sub-keys to be created sometime during the first boot. Unfortunately there's no way to auto-attach an application debugger during device boot. I would probably try writing a simple log, like you say. You could also revise your code to fall back to waiting on HKLM\System if the "State" and "Phone" keys don't exist. Or to try creating the keys instead of just opening them.

Sue Loh [MS] (Moderator)[12:42]:

Q: [30] So there is a possibility that those reg keys are in fact not created yet? Is there any good way to attach/debug such situations? (other than file logging)

A: [re-posting to correct message on the conversation] Yeah, I'd expect HKLM\System\State and its sub-keys to be created sometime during the first boot. Unfortunately there's no way to auto-attach an application debugger during device boot. I would probably try writing a simple log, like you say. You could also revise your code to fall back to waiting on HKLM\System if the "State" and "Phone" keys don't exist. Or to try creating the keys instead of just opening them.

mskim_MS (Expert)[12:42]:

Q: [37] EXR: Are there advantages using the OGL renderer rather that the DirectDraw renderer? Or do they give equivalent functionality and performance?

A: It all depends on the platform implementation however there's no advantage on any technology for this plug-in.

Sing Wee[MS] (Expert)[12:45]:

Q: [38] native

A: Hi Marcelovk, I'm not an expert in this area, but I have a tutorial from a previous public presentation that showed this should indeed work. Could you private message me your email address, and I'll email the tutorial to you.

RajeevDubey[MS] (Expert)[12:45]:

Q: [40] Did you receive my e-mail?

A: Yes, just got it.

davbo_msft (Moderator)[12:49]:

Q: [44] In Wince 6.0 is there a speech recognition engine?

A: Microsoft Auto includes a speech engine - http://www.microsoft.com/auto

mskim_MS (Expert)[12:51]:

Q: [44] In Wince 6.0 is there a speech recognition engine?

A: SAPI 5.2 is included in CE 6. You can find more information from here http://download.microsoft.com/download/a/0/9/a09e587c-4ff9-4a58-a854-56fe50b862b2/release%20notes.htm

Sue Loh [MS] (Moderator)[12:54]:

Q: [31, 33] On our device we have 2GB NAND flash and we have four partitions (Binary with ULDR, NK, OS, Storage). The Storage partition (USERSTORE, initially empty) should allocate the the whole NAND flash after the OS partition
What are the right configuration entries in memory.cfg.xml to get a Storage partition of 2GB (minus other partitions)?

A: I would try something like:

<ULDR ID="ULDR" STORAGE_ID="FLASH"/>
<RAMIMAGE ID="NK" STORAGE_ID="FLASH" COMPRESS="0" FIXUP_ADDRESS="0x80000000" ROMFLAGS="2" FSRAMPERCENT="0x00000000" FREE_SPACE_BUFFER="0x40000" />
<IMGFS ID="OS" STORAGE_ID="FLASH" FREE_SPACE_BUFFER="0x3200000" />
<USERSTORE STORAGE_ID="FLASH" ID="Storage" PART_TYPE="0x02" />

I have also sent feedback to our documentation team that there needs to be more guidance here.

davbo_msft (Moderator)[12:55]:

Q: [44] In Wince 6.0 is there a speech recognition engine?

A: Found another MSDN link on the SAPI 5.0 http://msdn.microsoft.com/en-us/library/aa914072.aspx

Sing Wee[MS] (Expert)[12:57]:

Q: [50] hi i have just bought a new laptop with vista however im trying to setup a wireless network ive enterd my wep key etc. . but when i click connect a grey box pops up asking me to enter my credintals ( user name, password and logon domain) can you help me ?

A: Sorry, this particular chat is for Windows CE only.

davbo_msft (Moderator)[12:57]: 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>;

davbo_msft (Moderator)[12:58]: Any unanswered questions I will work to get answers and post with the transcript.

Sing Wee[MS] (Expert)[12:59]:

Q: [38] native

A: (From private message conversation, in case others are interested): Since this is native, is there any reason you need to use two instances of VS2005? Why not include the application as a subproject of the OS design?

mskim_MS (Expert)[13:01]: Andrew, please send email to mskim@microsoft.com for your VFP question on EXR, I will let you know.

davbo_msft (Moderator)[13:01]:

Q: [53] NOOO!, the transcript takes years to be available!!

A: I've worked w/ the Chat posting team and they should get posted faster now.

Sing Wee[MS] (Expert)[13:02]:

Q: [41] Looking at the SDBus I saw that you never put in HighSpeed Mode the SD card?Is it supported by the stack the high speed mode for the SD card compliant with the spec ver 1.10 and higher?

A: According to some documents I've seen, CE6.0 RTM should support SD v1.1, CE6.0 R2 should support SD v2.0 (ADMA). On the MMC-side, we're supporting 3.x.

KarelD_MSFT (Expert)[13:03]:

Q: [26] I saw a question last month about if FMD_WriteSector() fails on NAND, and I was unclear about one point. After compation, does the FAL mark the block as bad, or try to erase it and reuse it? Same behavior for Flash MDD?

A: If we are talking about flash abstraction library which shipped with Windows CE 6.0 R2 (flashcommon.lib and other) you don't need to. The Flash MDD will do it.

Sue Loh [MS] (Moderator)[13:05]:

Q: [28] How can I disable the memory pooling for a specific driver in Windows CE 6.0?

A: By "pooling" I presume you mean paging of the driver code. You have a couple of ways to do it: set the "M" flag on the driver in your .bib file, if the driver is in ROM. Make sure NOT to set bit 2 (DEVFLAGS_LOADLIBRARY) of the "flags" registry value, under the driver registry settings. Or call LoadDriver on it instead of LoadLibrary, if you're loading it programmatically. This blog post is on the OPPOSITE topic, but still has tips you can follow if you do the opposite of what it's saying. http://blogs.msdn.com/ce_base/archive/2008/02/28/making-sections-of-windows-ce-device-driver-code-non-pageable.aspx

Sue Loh [MS] (Moderator)[13:05]:

Q: [43] In Wince 6.0 is there a way to disable the memory pooling for the Storage Card?If yes how is it possible?

A: By "pooling" I presume you mean paging of the driver code. You have a couple of ways to do it: set the "M" flag on the driver in your .bib file, if the driver is in ROM. Make sure NOT to set bit 2 (DEVFLAGS_LOADLIBRARY) of the "flags" registry value, under the driver registry settings. Or call LoadDriver on it instead of LoadLibrary, if you're loading it programmatically. This blog post is on the OPPOSITE topic, but still has tips you can follow if you do the opposite of what it's saying. http://blogs.msdn.com/ce_base/archive/2008/02/28/making-sections-of-windows-ce-device-driver-code-non-pageable.aspx


MikeThom [MS] (Expert)[13:15]:

Q: [46] EXR: Our ARM 11 platform has VFP which we have enabled through the OEM Floating Point CRT support (SYSGEN_OEM_FPCRT). Will this mean that the embedded XAML runtime will utilise the hardware floating point coprocessor? Or is it entirely integer based?

A: It will make use of the VFP enabled CRT.

Sing Wee[MS] (Expert)[13:26]:

Q: [56] Yes SD 1.1 and 2.0 are supported but not in high speed mode. Look at the SDBus implementation and let me know..

A: I just found the answer. Unfortunately, it appears we don't support High Speed in CE6.0 and its variants.


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