Windows Embedded Blog bsquare
   
 
windows embedded blog
April 7th, 2008 SD vs. MMC
May 9th, 2008 Adapting the Sample Host Controller
May 14th, 2008 Understanding Critical Section Deadlocks in Windows CE 6
More > > > > > >
 
 
Windows Embedded Blog questions
 
Windows Embedded Blog experts
 
Windows Embedded Blog updates
Email:

 

. . . . . . . . . . . . . . . . . . . . . .
RETURN TO BLOG HOME

VISIT WWW.BSQUARE.COM

  August 28th , 2006
___________________________________________
Q & A with Dean Ramsier, Senior Software Engineer

Question:
Will WinCE 6.0 require rewriting my driver which is kernel mode (now) and uses C++. Will I have to do the same tricks like on Win32 drivers - allocate memory from paged/non paged pools?

Answer:
In general you shouldn't expect to have to make many changes to existing drivers that you expect to run in kernel mode other than validating and mapping embedded pointers.  Kernel mode drivers link to a kernel mode version of coredll.dll so they still have full access to the APIs supported by Windows CE.  However, any areas that involve "tricks" or previously undocumented behavior are more likely to be affected by changes in the OS architecture.  This will depend on exactly what it is that you've done in your driver. 

Question:
I was curious about the fate of full-kernel mode and the ability of processes to address physical addresses in 6.0.  How are these going to be affected?

Answer:
The concept of full-kernel mode is no longer relevant in CE6.  All processes outside of the kernel run in user space.  Some APIs such as those that provide the ability to access physical addresses are restricted to kernel mode components, and are not available to user mode processes.  Therefore you are not able to directly access physical memory addresses from an application without the help of a driver.  This is true as of the beta release, but it is possible that things could change before RTM.  Look for more details on this and other similar changes in next week's blog.

Question:
I am a developer working in R & D for IGT, a gaming company based in Nevada. Right now there is some debate in our department over the capabilities of CE 6.0 and whether we should use XP embedded because of limitations of CE. We have only heard things about 6.0 so there is a lot of speculation on our part. CE 5.0 is very limited and does not have the graphical, sound, and processing capabilities that we need. I was wondering if you had any insight into this issue or if you could point me to some resources that would be useful in the debate. Thanks in advance.

Answer:
This question is difficult to answer without knowing the specific limitations you're referring to.  In general, CE can be very effective in the areas you're describing.  However it is also true that CE does not have the breadth of driver coverage that is available in the desktop world.  CE gives you the opportunity to have a very small footprint device with very flexible hardware architecture and low licensing costs, but comes with a complexity tradeoff.  XP Embedded is much easier to implement but much less flexible; you are tied into the x86 architecture with a much larger footprint and licensing costs.  However the driver availability is unquestionably better in the XP world for off the shelf devices.  XP Embedded also gives you the ability to use other off the shelf application stacks that are probably not available for CE.  CE6 should bring significantly increased performance in some areas due to the new kernel architecture which is much like the XP architecture.  However it does not otherwise change the driver and application stack availability dynamics.

Question:
Is the PXA255 supported in CE 6?

Answer:
We plan to support CE6 on the PXA255 when CE6 becomes available.


. . . . . . . . . . . . . . . . . . . . . . .
Dean Ramsier
Senior Software Engineer
Professional Engineering Services
BSQUARE Corporation | Contact Me!