How to Migrate Windows CE to a new Embedded Linux Environment
Our series Windows Embedded Compact Migration: What You Need to Know examines the primary issues around planning for the lack of support for Windows Embedded devices.
We kicked off the series with Part 1 covering key considerations such as platform longevity and security updates.
And Part 2 looked at both migration of operating systems and also on developing your legacy WinCE environment for the future.
So – straight into the final instalment and how to migrate Windows CE…
Part 3: Application Development: Migration of Windows CE to new embedded environment
Both Android and Linux present opportunities for handheld devices that will no longer be supported by Microsoft Embedded. Here are some key considerations for embedded systems developers.
Applications for Windows CE or Windows Handheld are most likely written in CPP or .NET C#. Windows Handheld devices are typically off-the-shelf ruggedised phone/tablet devices used for data input.
The natural OS migration option for Windows Handheld users is to an Android platform. Android has a strong set of development tools and with substantial built-in support for features. Applications can be built quickly and efficiently; it may be that the new application is simply a clean development including all the features of the new product.
If the application is particularly large, there are options to include code. Android, although normally written in Java, can be interfaced with C/C++ code (using the NDK – Native Development Kit).
Microsoft also offers Xamarin in Visual Studio, allowing developers to compile C# for Android and targeting multiple platforms. Each of these approaches has positives and negatives, from features through to implementation times, retesting and validation etc.
Windows CE platforms are typically custom single-purpose embedded devices, as opposed to off-the-shelf Windows Handheld devices. Migration is likely to embedded Linux; again, the OS will be targeted to the device, removing all unnecessary features to make a clean, lean-deployed OS.
Features such as security, firmware updates, and custom drivers will be implemented in the OS. Porting a Windows CE CPP application to this environment may be a little daunting, graphical frameworks such as QT offer some great support porting across platforms but can be considerably heavyweight.
A Simple Graphical OpenGL Framework: SnapUI
At ByteSnap, we employed the approach of writing our own very lightweight OpenGL framework, “SnapUI”. This uses familiar objects – such as text boxes, icons, scroll bars – described in an XML description file. Then implementing native CPP objects to render these graphical objects using the hardware-accelerated OpenGL of the CPU.
This allows quick and easy prototyping and movement to product quality applications, ensuring all graphics are hardware-assisted and not software rendered.
Linux-based migration + Visual Studio
Even when targeting Linux on your device, you can use Windows development machines and Visual Studio if your team is most comfortable with these. VisualGDB is a tool which enables you to cross compile on a build machine.
This may be a server in the back room, the tool chain on the PC or even the embedded device itself. Visual Studio is used as an editor and build manager, pushing source files to the build device, building, deploying the executable, setting breakpoints, inspecting variables and all the other features you’d expect from an IDE (integrated development environment).
ByteSnap have dedicated OS engineers and can advise on anything from OS selection, build configuration, custom drivers and more.
We hope this series on how to migrate Windows CE has been helpful! There’s more to discover on our Software Development pages and our blog…
Are you currently trying to migrate a Windows Embedded Application or Project?
This checklist provides an overview of the steps required to migrate your Windows Embedded project, as well as lots of shortcuts you can take to reduce stress and the time required:
How can ByteSnap help you today?
From start-ups to blue chips, ByteSnap’s embedded systems developers are enabling companies to stay a step ahead by providing them with bespoke solutions. Maintain your competitive edge – contact us today and find out how we can optimise your product development!