Windows Embedded Compact
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 ......
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 ......
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. ......
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 ......
"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 ......
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 ......
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 ......
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 ......
I wanted to install the Windows Embedded Compact Edition 2013 Update that is compatible with Visual Studio 2013. But I discovered that the install process is poorly described. What follows is what I found out (most of it) myself. The Windows Embedded Compact Edition 2013 download link itself has been updated with a more recent image named “Windows Compact Edition 2013 Update 5”. So you just need to re-download through the original link where you could find the original image (year 2012). I installed ......
ACPI (Advanced Configuration and Power Interface) is an open industry specification co-developed by Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba.Download acpica-win-<date>.zip, acpitests-win-<date>.zip as well as acpica_reference_<x>.pdf and aslcompiler_<y>.pdf from http://acpica.org. Also download ACPISpec50.pdf from http://www.acpi.info to complete your documentation.Things to know before building the ACPICA libraryThe ACPICA v5.0 package consists of the following ......
Full Windows Embedded Compact Archive