CE to Linux migration
Porting the software from WinCE into Linux and preparing of corresponding image for PLC
The customer has multiple devices based on WinCE. Since these are custom-made, according to specific requirement, they are based on different hardware and have different software configurations (i.e. display or not, CODESYS or not, different communication protocols, etc…). Since the customer lacks know-how for Linux, the requirement is to update all these devices to Linux, port the legacy software from WinCE to Linux, install and configure ported software, test, and maintain these firmware versions.
We prepared a repository containing configurations for different types of devices. This allowed us to build the corresponding images for the different devices. For the software components, the corresponding makefiles were prepared (based on VS-projects for WinCE). The source code was reworked to use Linux specific statements and functions. Since hardware access is different in Linux and WinCE, the low-level software parts (hardware specific) were reworked significantly. Intensive module tests and system tests were performed to assure the correct behaviour and stability of the system.
U-boot and Linux kernel (with real-time patch) were installed in the device. Standard drivers to access the hardware (CAN, SPI, etc ) were available and configured in the Linux kernel. DevAPI.dll was available in WinCE to abstract hardware access. This DLL was ported to the corresponding DevAPI.so file in Linux. API-functions from DevAPI.so can be called from standalone C/C++ application or from CODESYSControl through special custom components.
The upgrade of all devices to a new OS was smooth and our client was able to continue delivering his devices with the same functionality, often even more functionality. This upgrade to Linux allowed the client to extend the product life cycle of several years and is now the basis for new further devices. Maintenance and further developments are now provided by our engineers.