Windows Embedded Home
Windows Embedded 8 Family
Windows Embedded 7 Family
Other Windows Embedded Products
ABOUT WINDOWS EMBEDDED COMPACT
Windows Embedded Compact is a componentized, real-time operating system used to create a wide range of small-footprint enterprise and consumer devices. Join the discussion about the unique benefits of the Compact OS, examples of Windows Embedded Compact currently in use, and developer tricks and tips.
Posted By David CampbellProgram Manager
Welcome back! This is part 2 of Doug Boling’s great write-up on Understanding CEPC Boot Sequence in Windows Embedded Compact 7. Last time we covered the PC boot sequence in detail. That provides the background for the Windows Embedded Compact specifics. Let’s jump right in...
In Part 1, I started this discussion with an overview of two of the three different CEPC boot loaders provided in the Windows Embedded Compact 7. I discussed the LoadCEPC bootloader as well as how to use the BIOSLoader. I also talked about how the FAT file system. An understanding of the layout of a FAT storage device is important when understanding how these bootloaders work. In this installment, I will cover how the BIOSLoader and the WCELDR work and how to modify the WCELDR to adapt it to your hardware.
In Part 1, I discussed how the file system works, now let’s return back to the BIOSLoader to cover how it works. When the system starts, the BIOS will load the Master Boot Records (MBR) into RAM which will find and load the boot sector of the active partition. This boot sector will be one of the BIOSLoader boot sectors that will have to be installed on the disk. The source code for the BIOSLoader boot sectors is located in \WINCE700\platform\cepc\src\bootloader\biosloader\bootsector, There is a unique boot sector for each of the different File Allocation Table (FAT) formats including ExFAT.
The boot sector code finds the root directory and looks for the name BLDR with no extension. It expects to find this name in one of the first 32 entries in the root since the boot sector only reads the first sector of the root directory into memory.
When the BLDR entry is found, the boot loader finds the location of the file data by using the first cluster entries in the directory entry for the file. Instead of following the FAT chain to properly load the entire file, the boot sector assumes that the file will be stored in linear sectors on the disk and reads a fixed (68 sectors or 34816 bytes) into memory at address 0:1000. This hard coded size provides an absolute limit on the size of the BLDR code.
The boot sector then jumps to the first byte of the BLDR file. The BLDR then switches to protected mode and executes the remaining tasks from there. Those tasks include reading and parsing the BOOT.INI file and downloading or reading from the disk the NK.BIN file.
Comments Windows Embedded Compact
Doug Boling recently hosted one of his regular webcasts on Optimizing performance and power on Windows Embedded Compact 7 and has graciously provided me with a companion article. Thanks Doug! There’s more information later in the article about how you can sign up for these webcasts so please do join us for the monthly sessions.
Embedded hardware is slow. It’s designed that way. Unlike Personal Computers which are sold to customers who are dazzled by high gigahertz numbers and massive hard disks, embedded customers buy a widget that does something. If the widget does something well that’s all that matters, so the manufacturer of that widget is going to use the slowest (and often least expensive) hardware possible to implement that widget. This is one requirement that makes embedded software so challenging to write. Embedded software must have great performance so that the hardware can be as inexpensive as possible.
In this blog post, I will review some of the techniques for system design that can improve performance, and as a consequence, the power consumption of a system. I’ll also cover some lower level application driver characteristics that can lower power consumption directly.
Posted By Partha SrinivasanSenior Product Manager
Since we launched Windows Embedded Compact 2013, one of the key requests we’ve gotten has been around the availability of Wi-Fi drivers for the hardware platforms supported by the operating system. We have exciting news to share: One of our Windows Embedded Compact partners, embWise, recently announced the availability of a WLAN driver, and partner iWave Systems is in the process of making Wi-Fi drivers available soon.
Posted By Partha SrinivasanSenior Product Manager
We are pleased to announce that the update release to Windows Embedded Compact 2013 is now generally available. The release provides access to the new Visual Studio 2013, with an updated platform builder and application builder. There will be also a new inbox Wi-Fi driver for TI SDP44xx chipset.
Posted By Colin MurphyTechnical Program Manager, Microsoft’s Windows Embedded
The shell you say! What is a shell, anyway? Typically a shell application manages the base user interface of the system including access to applications and files and the ability to configure the system. In the case of an embedded device, a typical multi-function desktop shell is overkill, taking up way too much space and requiring far more overhead than a purpose-driven embedded device wants or needs.
With that in mind, one of the most noticeable changes to Window Embedded Compact 2013 is the removal of the large and dated Windows 95-style shell. The Compact team was quite torn on this decision; on the one hand, it was an excellent developer tool-- easy to launch files, everyone knew how to use it--but when that same shell appears on your refrigerator, digital sign or vending machine, people were not as impressed by its versatility. Enter MinShell. This new Compact shell offers a much smaller feature set. It is basically an application launcher that can be customized to launch any application. For developers, it comes preset to launch “CMD.EXE,” a DOS command processor, so you can copy and launch applications as needed. But MinShell is designed, and begs to be, replaced.