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


Typical development tasks

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


Requirement Software

The following software components are needed to support Compact 2013 development:


  • 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:

http://www.visualstudio.com/en-us/news/vs2013-community-vs.aspx


  • 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 software:

http://www.microsoft.com/en-us/download/details.aspx?id=38819


  • Windows Embedded Compact 2013 Platform Builder

Platform Builder is the main development tool for Compact 2013, to develop OS design, device driver, BSP, native application, testing and debugging.

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.

http://www.microsoft.com/windowsembedded/en-us/downloads.aspx  


  • 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 their product.


Software Installation

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 started series.


Note: While 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 2013.

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 screen:


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 helpful later.

 


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:

C:\WINCE800\Platform


Third party components are installed to the following directory:

C:\WINCE800\3rdParty 


Development Environment

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 Compact 2013:


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.

Note:  The 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 different developers


Target Device

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 following figure.


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 following URL:

    http://86duino.codeplex.com


For more information about the EduCake, refer to the following URL:

    http://www.86duino.com/index.php?p=95


Compact 2013 Terminology

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 environment.

Terminology

Description

BSP

Board support package is a set of software components that include device drivers and OEM adaptation layer codes for the supported target device.

Catalog

Catalog contains components for Compact 2013 OS such as OS features, modules, device drivers, BSP and application components.

OAL

OEM Adaptation Layer is a low-level code acting as the interface between the OS and the hardware.

OS design

A Visual Studio project to develop and generate a custom Compact 2013 OS runtime image for a target device.

OS runtime image

The binary image file generated from an OS design project.

Target device

The hardware platform used to develop Compact 2013 OS or application.

KITL

Kernel Independent Transport Layer is a communication protocol used for debugging in the Compact 2013 development environment.

CoreCon

Short for Core connectivity, used to establish connectivity between the development station and target device.

Release directory

Refers to the directory where the OS design project output files and software components during the build and compilation process.

Build release directory

same as Release directory