In part-1 of this Compact 2013 getting started series, let’s go over the
development environment, required software and connectivity between the
development workstation and the target device and cover the following:
* Typical development tasks
* Required software
* Software Installation
* Development environment
* Target device
* Compact 2013 terminology
Regardless of the development environment we ended up with, it’s
necessary for us to know about the various development tasks involve in process
to create the device.
After hardware platform is decided, developing a Compact 2013 device
typically involves the following:
1. Board support package (BSP) for the device, which include hardware adaptation code, device drivers and bootloader.
2. Operating system image for the device (OS design).
3. SDK to support application development.
4. Testing and debugging
5. Deploy OS image along with application onto target device for distribution
Note: This series of application note is intended
for beginner and intermediate developer with limited knowledge about the
Compact 2013 development environment, and will not cover BSP, device driver,
bootloader and other advanced subject
The following software components are needed to support Compact 2013
Visual Studio 2013 (VS 2013) or
Visual Studio 2012 (VS 2012) with Update 4
Note: The express version of VS 2012 and 2013 does
not support Compact 2013 development
While the Visual Studio express version does not
support Compact 2013 development, Microsoft released another version, Visual
Studio 2013 Community edition, available for free that support Compact 2013
development. Visit the following URL for
information and download link:
Application Builder for Windows
Embedded Compact 2013
Application Builder is needed, along with an SDK
for the target device to support application development for Compact 2013. Visit the following URL to download the
Windows Embedded Compact 2013
Platform Builder is the main development tool for Compact 2013, to
develop OS design, device driver, BSP, native application, testing and
From the following URL, look for Windows Embedded Compact 2013. You will need a valid Microsoft ID to
register and get an activation key. While the site indicate it’s a trial version, it is a full featured and
fully functional version.
SDK for target device
To develop application for a Compact 2013 device, you need a Compact
2013 SDK for the target device. You can
generate the SDK from within the OS design project used to develop the OS
runtime image for the target device. The
target device’s vendor may have an existing SDK for Compact 2013 to support
Improper software installation is one of the major source of problem for
developer new to Compact 2013. It’s a
complex development environment that involve huge amount of files. It’s well worth the effort to take time and
carefully install all of the required component.
VS 2013 Ultimate is used to perform the sample exercises in this getting
we work through the sample exercises using VS 2013, the same BSP, 3rd
party components and sample codes work in the VS 2012 development environment.
Here is the recommended installation sequence:
1. Visual Studio 2013.
2. Application Builder for Windows Embedded Compact 2013.
There are two different version of Application Builder, one for VS 2013
and the other for VS 2012. Be sure to
install the correct version.
3. Windows Embedded Compact 2013 Platform Builder.
In the event you have the Windows Embedded Compact 2013 installation
software or DISC from the initial release (mid 2013), it was created to support
VS 2012 and may have problem to install on a VS 2013 development machine.
If you have MSDN subscription, use “Windows Embedded Compact 2013 Update
5”, this update package is released as a full product installation that
includes all of the QFEs up until Update 5.
If you are getting the installation package from the Windows Embedded
product trial website, it’s an updated installation package that support VS
During the Compact 2013 Platform Builder installation process, you can
chose to skip update. Otherwise, it will take a lot more time to check and
download additional updates, as shown in the following installation screen (you
can perform the update at a later time):
The “Full install” will occupy around 25 GB of storage. You can select the “Custom install” option
and select the components needed to support the target device you plan to use,
to minimize the required disk storage.
Since we are using an x86 device for the exercise in this series, we
excluded ARM CPU support from the installation, as show in the following
When the “offline layout” option is selected, a copy of the installation
files are saved on the development machine’s local hard drive, which can be
4. Next, install 3rd party BSP,
device drivers and SDK needed to support the target device.
Third party BSPs are installed to the following directory, assuming you
install Compact 2013 to the default directory:
Third party components are installed to the following directory:
In addition to properly install all of the required software, a proper
development environment is another important aspect you need to be aware of.
Depending on the target device you are using, the setup may be different.
For the exercises in this getting started series, we are using an x86
target device. Both the development workstation and the target device are
attached to the same Local Area Network (LAN) with DHCP service to provide IP
address dynamically. In addition, a null
RS-232 serial cable is used to connect a serial port on the target device to
the development workstation, to capture serial debug messages.
The following figure shows the development flow for Windows Embedded
In the above figure, workstation #1 is used to develop an OS design
project, to generate and OS runtime image (NK.bin) for the target device. SDK is generated from the OS design project
in workstation #1, which is needed by workstation #2 to develop application for
the target device.
same development workstation can be used to develop both the OS runtime image
and application for a Compact 2013 device. In real life situation, it’s common to
separate and assign OS image development and application development to
The exercise in this series is based on a target device with board
support package (BSP) and bootloader available, 86Duino EduCake.
The 86Duino EduCake (EduCake) is designed with a 300 MHz Vortex86EX
System-on-Chip (SoC), originally designed to emulate the Arduino platform. The I/O interfaces accessible on the EduCake’s
solderless breadboard is electronically compatible to the Arduino Leonardo and
Arduino Uno, which is also referred to as Arduino 1.0 pinout, as shown in the
The EduCake, packaged in a metallic enclosure with an integrated
solderless breadboard, is designed to provide an easy to use platform for
academic and hobbyist developers to work with different experimental circuit,
to explore and learn.
While it was originally designed to target the Arduino user community,
the EduCake is capable to boot to DOS, Linux, Windows CE, Windows Embedded
Compact, Windows XP, Windows XP Embedded, Windows Embedded Standard 2009 and
other RTOS that support the typical PC built on 32-bit x86 processor.
For the exercise in this series, we will use the BSP, SDK and other
resources from the 86Duino project on Codeplex, which is available via the
For more information about the EduCake, refer to the following URL:
It’s common practice for many industry to have its own set of common
terminology. Knowing the terminology and
what it represent is helpful, especially when you are new to the environment
trying to learn the new environment. The
following table is a list of some of the common terminology in the Compact 2013
package is a set of software components that include device drivers and OEM
adaptation layer codes for the supported target device.
contains components for Compact 2013 OS such as OS features, modules, device
drivers, BSP and application components.
Adaptation Layer is a low-level code acting as the interface between the OS
and the hardware.
Studio project to develop and generate a custom Compact 2013 OS runtime image
for a target device.
image file generated from an OS design project.
platform used to develop Compact 2013 OS or application.
Independent Transport Layer is a communication protocol used for debugging in
the Compact 2013 development environment.
Short for Core
connectivity, used to establish connectivity between the development station
and target device.
Refers to the
directory where the OS design project output files and software components
during the build and compilation process.
View this page in another language: