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 Microsoft Embedded devices, as end of life dates for Windows CE and Mobile OS beckon ever closer.
We kicked off the series with Part 1 when we looked at key considerations such as platform longevity and security.
And Part 2 went into greater detail on OS migration, and developing your legacy WinCE environment for the future.
So – straight into the final instalment and how to migrate Windows CE…
Windows Embedded Compact Migration – What You Need to Know
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 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 migration 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 maybe a little daunting, graphical frameworks such as QT offer some great support porting across platforms but can be considerably heavy weight.
A Simple Graphical OpenGL Framework: SnapUI
At ByteSnap, we employed the approach of writing our own very light weight 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.
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.
ByteSnap have dedicated OS engineers and can advise on anything from OS selection, build configuration, custom drivers and more.
To find out more about our embedded Linux development services call ByteSnap on +44 121 222 5433
Our consultants are here to help.
We hope this article looking at how to migrate Windows CE has been helpful! You may find further useful reading by checking out our Software Development pages or our blog…
The post How to Migrate Windows CE to a new Embedded Linux Environment appeared first on ByteSnap Design.