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
Posted By Karen RobertsSenior Partner Marketing Manager
At July’s 2013 Worldwide Partner Conference, the Windows Embedded team was excited to announce our plans to transition program administration of the Windows Embedded Partner Program ecosystem into the Microsoft Partner Network (MPN). Integrating with MPN enables us to offer our partners more program options, and greater partner benefits. Among these program options, we highlighted the launch of an all-new Intelligent Systems Specialization, designed for partners with an end-to-end intelligent-systems solution offering and business practice. This month, we are excited to announce new developments that will deliver more value than ever before to our intelligent systems partners: in January 2014, MPN will launch an all new Intelligent Systems Competency in place of the previously planned specialization.
Leading up to and since the announcement the market has continued to see rapid growth as partners have picked up on the enormous business opportunity surrounding intelligent systems solutions. A 2013 IDC report estimates that by 2017, intelligent systems will represent over 87 percent of worldwide embedded systems revenue, which represents a market of more than $2.7 trillion.
Microsoft is committed to encouraging innovation and commitment among our intelligent systems partners, and want to provide them the highest possible level of support and resources they need to help them grow their business. Within the Microsoft Partner Network, the competency program—comprised of 23 unique competencies based on key Microsoft solution areas—offers the highest level of value to partners. A recent IDC study estimates that a Microsoft competency program provides partners with total benefits valued at more than $320,000.
Comments Intelligent Systems
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 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.
At the recent Visual Studio launch event, it was confirmed that Visual Studio 2012 will once again include support for Windows Embedded Compact. Included in that support we’re targeting much of the newest compiler and tools functionality, most notable of which includes new compiler features such as C++11 language standards, faster more efficient code generated, an updated CRT, auto-parallelization and auto-vectorization (Wow, that’s a mouthful.), range based loops, RValue references, and more. Also included will be an updated version of .net CF which has greatly improved performance, particularly around memory allocation and garbage collection - using the “generational” garbage collector. This not only provides more performance, but more predictability in the execution of applications.
More information about the new Visual Studio, including support for Compact, can be found at the Visual Studio Launch site. (Yes, I’m in the video and no, I’m not going to be able to make a living in front of the camera. But it’s the message that’s important here.)
Be sure to check back in the future as we release more information on the upcoming Windows Embedded Compact release.