posts - 20 , comments - 57 , trackbacks - 0

Windows Embedded Compact

Debugging PCI bus with Windows CE
This time I will write about something I don't understand :-( Or at least not completely. Some time ago I was debugging a new Intel hardware platform (Adlink ETX-BT, Celeron J1900) and I experienced unexpected hangups during boot of the DEBUG version of my WINCE800 image. The RELEASE version never gave problems and started properly. After narrowing down the problem, I came across this piece of code inside PCIBUS.DLL (pcicfg.c line ±800) ... // Set the bus numbers & secondary latency // Need to ......

Posted On Wednesday, October 21, 2015 9:56 AM | Comments (0) | Filed Under [ Windows CE Windows Embedded Compact Microsoft Visual Studio 2012 Visual Studio 2013 Intel PCI Debugging ]

x86 bootloader for WCE8
This blog will reveal how to build the Windows CE bootloader for x86 that shipped with Windows CE 6. This bootloader also works for Windows CE 7 and 8 (CE2013) Locate the x86 bootloader code in WINCE600\PLATFORM\CEPC\SRC\... and copy it "as is" to WINCE600\PLATFORM\<YourB... Making any changes now to <YourBsp> prevents that the CEPC sources are "polluted" with your changes. You can also copy the BOOTLOADER sources to a Windows CE 7 or 8 platform directory. The bootloader ......

Posted On Monday, August 3, 2015 8:48 PM | Comments (0) | Filed Under [ Windows Embedded Compact Embedded Microsoft BootLoader ]

x86 ISR for WCE8
In Windows CE all hardware interrupts are handled by 1 Interrupt Service Routine (ISR) at the lowest level. Its main purpose is to identify the Interrupt Request (IRQ) source and handle some low level hardware clearing and resetting of the Interrupt Controller such that new interrupts can be triggered. Once the IRQ is recognized by the ISR, it is handed over to an Interrupt Service Thread (IST). This has the advantage that the hardware IRQ priority can be overruled by the IST thread priority scheduling. ......

Posted On Monday, July 13, 2015 10:23 PM | Comments (1) | Filed Under [ Windows CE Windows Embedded Compact USB UHCI EHCI APIC ACPI Interrupt IRQ PIC Intel ]

On Demand Paging in Windows CE
Recently I was working on a tool program that allowed me to read/rewrite the complete binary image of a drive (HDD) in Windows CE 8 (Compact Edition 2013). We use this program to restore a complete image to a (bootable) drive as part of the software upgrade of our device/application. At some part of writing the image to the drive, the program itself crashed with an AV while reading a static const array of integers. Debugging with Visual Studio 2012 showed that at that particular place half of the ......

Posted On Monday, May 25, 2015 2:05 PM | Comments (2) | Filed Under [ Windows CE Windows Embedded Compact RTOS Visual Studio 2012 Visual Studio 2013 ]

HPET for x86 BSP (how to build it for WCE8)
"I needed a timer". That is how we started a few blogs ago our series about APIC and ACPI. Well, here it is. HPET (High Precision Event Timer) was introduced by Intel in early 2000 to: Replace old style Intel 8253 (1981!) and 8254 timers Support more accurate timers that could be used for multimedia purposes. Hence Microsoft and Intel sometimes refers to HPET as Multimedia timers. An HPET chip consists of a 64-bit up-counter (main counter) counting at a frequency of at least 10 MHz, and a set of ......

Posted On Saturday, August 2, 2014 10:02 PM | Comments (0) | Filed Under [ Windows CE Windows Embedded Compact RTOS APIC ACPI Visual Studio 2013 HPET ]

PCI Latency Timer
In my previous blog I mentioned I was involved in searching for Windows socket data that got corrupted upon reception in a Windows CE 6 executable. The short explanation is that the Realtek 100MBit (RTL8139, RTL8101) network interface card simply couldn’t swallow high load bursts of TCP packets (The long explanation took weeks...). The Realtek card couldn’t transfer its data fast enough to the cpu’s main memory for further handling by NDIS and the Windows CE 6 TCP/IP stack. The loss of data showed ......

Posted On Tuesday, July 1, 2014 9:29 PM | Comments (0) | Filed Under [ Windows CE Windows Embedded Compact Microsoft NDIS TCP/IP ]

FtpWebRequest
As I described in my previous post, I use the Windows CE Ftp File Server for remote browsing the device's file system. I also use it to update the device's firmware. Some time ago I wrote .NET C# code to initiate the firmware upgrade from a desktop Windows PC. I decided to use the .NET System.Net.FtpWebRequest library. At first everything seemed to work quite well and the code was easy to use. Until at a certain date the firmware upgrade failed. The WireShark trace revealed "an unrecognized command" ......

Posted On Monday, September 2, 2013 8:25 PM | Comments (0) | Filed Under [ Windows CE Windows Embedded Compact Ftp FtpWebRequest Microsoft ]

Ftp server in Windows Embedded Compact 2013
With the introduction of Windows Embedded Compact 2013 (aka Windows CE 8.0), the good old File Explorer is no longer present. On itself I understand why Microsoft did this - what end-user application needs a File Explorer? - but during DEBUG development, it was/is a helpful tool. So what are your options as a developer (debugger)? - Add the Command Shell to your image. Ok if you can type fast (I am not) - Add the Telnet Server to your image. Ok if you can type fast (I am not) - Add the Ftp File Server ......

Posted On Sunday, September 1, 2013 9:22 PM | Comments (0) | Filed Under [ Windows CE Windows Embedded Compact Embedded RTOS Ftp Microsoft ]

NDIS Packet Capturing DLL
Recently I was involved in searching for Windows socket data that got corrupted upon reception in a Windows CE 6 executable. The data was transmitted from a Windows 7 desktop PC. At first it was not clear where the problem was located. Was it the Windows 7 (C#) application? Was it the Windows 7 TCP/IP stack? Was it the Windows 7 NDIS? Was it the Windows 7 network interface driver? Was it the Windows 7 PCI interface between the network card and the cpu (main memory)? Was it the Windows 7 network interface ......

Posted On Tuesday, July 1, 2014 9:25 PM | Comments (0) | Filed Under [ Windows CE Windows Embedded Compact Microsoft NDIS TCP/IP ]

APIC for x86 BSP (how to build it for WCE8)
As promised I will talk about how to replace the “old” PIC (Peripheral Interrupt Controller) with the “new” APIC (Advanced Peripheral Interrupt Controller) in a CEPC (x86) BSP. I will refer to the “MyBSP” BSP in my explanation, your clone of the CEPC BSP. As APIC is mostly only available for (Intel) x86 platforms, this talk will only be valid for x86, not ARM. The Windows CE Boot to Kernel startup phase There are a few good MSDN links that explain quite a bit about the Windows CE startup phase. This ......

Posted On Monday, June 23, 2014 8:39 PM | Comments (7) | Filed Under [ Windows CE Windows Embedded Compact Embedded RTOS Microsoft APIC ACPI ACPICA BSP Visual Studio 2013 ]

Full Windows Embedded Compact Archive

Powered by: