Saturday, August 30, 2008

XP Embedded: ACPI Issues while Building for Multi-Core Processor Systems

By now you are very well adjusted to building XPE images for single processor systems utilizing the "Advance Configuration and Power Interface (ACPI) PC" component. However, if you're like me and use an XPE initial .slx template to get your project started with the basic features, you may run into some issues with collisions between two or more components. In particular, if you have imported a PMQ file that is derived from a multi-core processor system and you use your single core template to start building, you will find that there is an error: 1106 that will stop your dependency check process from completing. The reason behind this is that your PMQ file has inherited the "ACPI Multiprocessor PC" component into the build. Since you already have your previous ACPI component included, there is a conflict.

To resolve the error, simply disable "Advance Configuration and Power Interface (ACPI) PC" and re-run your dependency checker. You should find that it completes without a problem and allows you to proceed to the build process.

Tuesday, August 5, 2008

XP Embedded: Upgrading Components in Target Designer

So you've been buiding XPe images under SP1 with no problem and made a choice to upgrade to SP2 w/ Feature Pack 2007. Some may have noticed that when the device PMQ is added to the build, an error is now seen as follows "Error 1120: Configuration needs to be upgraded. Service pack level mismatch between current configuration and some components". You will also notice that your PMQ does not show settings options.
To correct this, you need to upgrade the whole configuration. Right Click on *Components* and click upgrade. This should upgrade the whole configuration.

Thursday, July 17, 2008

Windows CE Platform Builder 6.0 and Visual Studio 2008

Some of you may have already tried running Platform Builder for Windows CE 6.0 on Visual Studio 2008 and have been unsuccessful. It appears as though Platform Builder for CE 6.0 has strict requirements of being run on Visual Studio 2005 Professional. When an attempt is made to install over Visual Studio 2008, a message stating that the system does meet the minimum requirements will stop you dead in your tracks.

Windows CE 6.0 - Errors Generated adding Platform Manager

Do you receive an error message after adding the Platform Manager catalog item into your OS Design in Platform Builder for Windows CE 6.0?

In Platform Builder for Windows CE 5.0, Platform Manager was a common feature added to manage the connectivity between the target CE device and the development workstation running Visual Studio 2005. With the introduction of Windows CE 6.0, the Platform Manager resources were no longer included in the install under what should have been the C:\WINCE600\OTHERS\platman\ directory. For some reason or other, the catalog area was overlooked and the Platform Manager radio selection is still available within Platform Builder for Windows CE 6.0. For developers migrating from CE 5.0 to CE 6.0, it may be a common habit to add the Platform Manager feature. However, CE 6.0 now utilizes CoreCon for connectivity between a target device and Visual Studio 2005. It is now required for the developer to start ConManClient2.exe and CmAccept.exe from the target CE device in order to debug or deploy a run time image. Both of these executables have a 3 minute window for Visual Studio 2005 to establish connectivity.

Thursday, June 26, 2008

Embedded System Demo Boot Time Comparison

The following post reflects the different boot times experienced on the same platform running XP Embedded when the compact flash card is swapped to one with better performance. The one on the right has the compact flash with better performance.

Wednesday, June 18, 2008

Hibernate Once Resume Many (HORM) Benchmark

This can serve as a general reference for Windows XP Embedded boot up time performance differences between using Hibernation Once Resume Many (HORM) and standard booting.

The following test were run on a Celeron M 1GHz with a 1G Apacer compact flash card.

1. System with 512MB DRAM memory
Normal boot: 43.7 seconds
HORM boot: 24.2 seconds

2. System with 256MB DRAM memory
Normal boot: 38.9 seconds
HORM boot: 19.9 seconds

The results above should vary depending on the compact flash card being used as well. The important information to look at is not the total time, but the time differential between Normal boot and a HORM boot.

What is Enhanced Write Filter (EWF)

Enhanced Write Filter (EWF) provides the ability to write-protect a run-time image. By redirecting all write requests to either a separate disk partition or RAM, EWF allows the run-time image to maintain the appearance of a writeable run-time image.

Windows XP Embedded uses EWF.
Windows XP PRO does not use EWF.

Tuesday, June 17, 2008

DLL Registration Issues

Often times during installations, it may be found that it is impossible to install software that has previously been installed with no problems. After some investigation, you may find that this is attributed to a DLL not being registered in Windows correctly.

This is commonly verified when a regsvr32 with the .dll's name is called and an error stating that it could not register the dll occurs even though the file can clearly be seen in the directory where it resides.

This type of problem is characteristic of the .dll file becoming corrupt. Even though the file appears in the directory, it may still be corrupt and thus the message: " .dll was loaded but the .dll RegisterServer entry point was not found. The file cannot be located" will be seen.

To correct the issue, the following can be used:

1) Download a new copy of the .dll that is needed for the software application to the desktop.
2) Find the original .dll file in the directory and rename it to dll file name “OLD” or similar.
3) Copy and paste the desktop .dll file into the directory.
4) Go to: Start>run Type: “cmd” > Type “regsvr32 name of .dll”>enter.

One other alternative should the above fail, is to run the system file checker tool.

To run this XP native tool:

1) Start > run > Type: sfc /scannow
2) Insert XP Pro CD to copy any files that should be found to be missing or corrupt.

If this is a custom .dll file provided by a 3rd party vendor and is not native to the XP Pro build, I would strongly suggest contacting the 3rd party vendor for the .dll file with the issue.

Creating a DOS Bootable USB KEY

With the ever popular USB Keys increasing in size and convenience, many have requested directions on how to make one USB bootable. This will of course be dependent on the BIOS supporting the USB boot feature on the unit in question and the proper setup of the USB Key device. Provided the device is USB bootable and the appropriate setting have been made to the BIOS to boot from a USB device, here are the instructions for setting up the USB KEY:

Create a DOS bootable floppy disk on a separate machine such as a desktop that has a floppy drive attached to it. Just in case you do not have a prepared DOS bootable disk to boot from ready and are a little hazy on how to create it, you can get the free boot disk creator from This will provide you the utility which you can use to make a DOS bootable floppy Disks.
The utility will automatically look for a floppy to create DOS bootable:

For USB Key, you will need to use a utility called "HP USB Disk Storage Format Tool" which you can download from;7241778;/fileinfo.html.
The utility is used as follows:

The Device section should have a drop down menu to select the USB Key device that you would like to create into a DOS bootable drive (mine is a SanDisk Cruzer). In addition to the device, you will also need to check mark the area that reads "Create a DOS startup disk" and "using DOS system files located at:" (in my case this was the G drive). Use the square browse box to select the location of your DOS bootable floppy created above (it may be a:\ in your case).
Select "Start" to see the following:

Select "Yes" and see:

At this point, your USB Key drive should be DOS bootable.

Intel Embedded Display Chipset Behavior

Lost VGA display when boot up without a monitor connected on previous boot

The problem that many embedded users are faced with comes from using the on board VGA/CRT connector as the primary display rather than the on board LVDS/TTL flat panel output.

Under XP Embedded (or XP Pro for that matter), if the unit is boot up without a display connected to the primary VGA/CRT display, the user is greeted with a blank screen the next time they try to boot into the desktop. From a users perspective, it is an unacceptable behavior as they are no longer able to see anything on the screen to make modifications to correct the problem. However, in actuality, the chip set driver is behaving as it should. Since the chip set is an embedded chip set (typically used on laptops), it contains and expects LVDS (flat panel) output which would translate to the flat panel display you see on your laptop. Unfortunately, the Intel Graphics Media Accelerator driver for the chip set does not have the ability to detect that an LVDS panel is connected to the chip set therefore when no CRT display is detected, it assume that an LVDS panel is connected and sets itself to output to LVDS discarding any settings on the Intel Graphics Media Accelerator driver. For this same reason (since it cannot detect LVDS - whether connected or disconnected), it does not restore the settings to the driver once back in the OS (because it assumes that an LVDS panel is connected from this point on until told otherwise through a manual settings change).

Solution 1:
The manual settings changes are located in the Intel Graphics Media Accelerator driver. Essentially, the user needs to regain the primary display to VGA/CRT by using CTRL+ALT+F1. However, the Hot Keys must be enabled as seen below:

(Hotkeys are typically enabled by default)

Solution 2:
Embedded motherboard manufacturers also offer custom BIOS modifications to disable the flatpanel output making the on board VGA/CRT the primary display (even after it enters the operating system). If booting the unit without a VGA/CRT monitor is a common practice, it may be a better idea to contact the motherboard manufacturer for a customized BIOS to address the display behavior.

Solution 3:
Intel provides the Intel Embedded Graphics Driver 8.0 editor to modify the display chipset output behavior. The utility can be downloaded from the following site:

Chipsets effected:

Intel 965GME
Intel 945GM/GME
Intel 915G/GV/GM/GMS
Intel 910GMLE
Intel 855GM
Intel 852GM/GME

Windows Embedded Standard 2009

The next generation of Windows XP Embedded Operating Systems from Microsoft is Windows Embedded Standard 2009. This operating system will be targeting developers that do not wish to spend time on the operating system development but rather concentrate on their specific software application. The operating system will be distributed as an install (like XP Pro) where options can be selected or deselected depending on the application needs.

The standard features will include:

- Support for Windows Server 2008
- Remote Desktop Protocol
- Security & Management
- Wi-Fi Protected Access 2
- Microsoft Silverlight
- Windows Internet Explorer 7
- Windows Media Player 11
- Microsoft .NET Framework 3.5

The targeted markets will be:

Advanced Set-top Boxes
Fuel Pumps
Full Featured Point of Service
Gaming Devices
Home Automation Gateways
Industrial Controls
Intelligent Appliances
Multimedia Internet Devices
Media Servers
Mobile Point of Service
Monitoring Devices
Multi-Function Printers
Networked Media Devices and Servers
Windows-based Terminals