Have you been developing embedded devices for years? Are you considering building your first operating system based product and looking at using embedded Linux? You are not alone.
Many companies that have historically been developing MCU based products are now being pushed by market and customer requirements to offer better, more feature-rich and more capable devices. In order to deliver the desired features, many new designs require a combination of MCUs and MPUs. Both of these are used in IoT systems to support cloud, gateway to edge functionality.
Moving to the world of Linux development
The introduction of embedded Linux within your organization can mean having to overcome multiple challenges. Engineers who have been developing bare metal applications will now dive into the complexities of Linux. Today there are many resources available from both open source and commercial companies to help with this challenge.
Sure, guides are helpful in enabling you to gain experience at a good pace, but what about the development environment? Does it need to be fully replaced to support Linux development?
In many cases, developing embedded Linux products is done using Linux hosts. There are several reasons for it. Embedded and desktop PC Linux both use the same Linux environment. Desktop PC Linux offers more pre-installed libraries and utilities than embedded Linux systems, making Linux development hosts ideal for the development of embedded Linux code. But what about engineers who are new to Linux or who prefer something similar to Visual Studio on Windows for their development host?
Historically, options such as Cygwin or Minimalist GNU for Windows (MinGW) have been used. Both options had their share of limitations on what engineers could do, and were also difficult to maintain. So many engineers opted for either a virtualized environment such as VirtualBox which could be used free of charge or for a VMware Player. The virtualized environments allows engineers to install Ubuntu or other Linux distributions within Windows, making it an option for developing embedded Linux based products that is widely used today.
There are other options for developing embedded Linux code. Recently, container technology has gained a lot of interest, offering another alternative to running a Linux distribution within the Windows operating system. Microsoft also has stepped up to supporting Linux development environment within their OS with the introduction of the Windows Subsystem for Linux (WSL), which has made its way into the recent Windows 10 release.
Windows Subsystem for Linux — keep your preferences
The recently introduced WSL feature in Microsoft Windows 10 has been gaining a lot of interest as it provides a good level of integration with the Windows OS.
The WSL provides a Linux-compatible kernel interface developed by Microsoft, which can then run a GNU user space on top of it, e.g. Ubuntu with a bash shell. Linux development tools such as Yocto cross-toolchains/SDKs can be easily installed within the WSL based Linux native environment.
So what does this mean for developers? It means those who prefer to develop under Windows host OS can stay with the familiar Windows development environment and simply enable Linux development environment on the same host.
One IDE for Windows and Linux
Engineers select development tools based on their personal preferences. Those who like to develop with an Integrated Development Environment will find the Timesys TimeStorm IDE a valuable addition to their toolbox.
TimeStorm offers a well-integrated Eclipse based development environment, which supports:
- Yocto Project SDK detection
- C/C++/Python development language support
- Application and system-level software development support
- Debug, profile and optimizations tools are included
More detailed description of the TimeStorm IDE features can be found here.
The Eclipse-based TimeStorm IDE provides Windows 10 OS users with an already familiar development environment, making it easy to develop embedded Linux products within a Windows environment. This feature makes it an ideal solution for developers who want to migrate from microcontroller development to the development of microprocessor-based Linux devices. TimeStorm autodiscovers available Yocto SDKs, which helps to accelerate development while hiding the complexities of the Linux development environment. It uses the same Yocto SDK under Linux and Windows host OSes, eliminating any potential issues related to using different toolchains on different host OSes.
Is WSL and TimeStorm IDE setup complex?
The tools experience begins with their installation. The setup of TimeStorm on a Windows 10 host is automated with a Timesys-provided Windows installer. The WSL is not enabled by default on a Windows 10 host, so the installer takes care of its activation. It installs an Ubuntu shell in the WSL and also installs various development packages that are required in a Linux development environment. And in the last step, the installer places TimeStorm under Ubuntu in WSL.
The installer offers seamless integration of TimeStorm with the Windows 10 interface. The IDE is registered with Windows 10 as an application. This means, it can be found using Windows search box, and it can be launched from the Windows Menu or desktop.
When TimeStorm starts, it has the look and feel of a native Windows application, making it easier for an engineer to jump start embedded Linux development.
Are there any limitations of a Windows based development process using TimeStorm?
The short answer is no. With TimeStorm, the Windows based development process of embedded Linux software is identical to the development process you would experience with TimeStorm on a desktop PC Linux host. You can develop software, deploy to an embedded system, debug the software remotely, and also profile and optimize your code.
Give TimeStorm a Try
The experience offered by TimeStorm helps in many aspects of development. The Windows version of TimeStorm enables engineers who are new to embedded Linux to focus on learning embedded Linux topics rather than spending time on switching to Linux host PC for their development environment.
The compilation process requires a cross-toolchain which compiles software for a target system. Such toolchains are provided by SDKs that can be obtained from various sources. These SDKs have to be installed within my IDE so the toolchains and associated libraries can be used at different stages of the development process. Typically, when an SDK is updated, I have to either remove the old one and install the new SDK in my IDE or install the new and switch from current to the new one.
Teams that use both Linux and Windows development hosts can use the same IDE for Yocto development, which is important when sharing code and experiences.
TimeStorm can be evaluated for 30 days free of charge. Simply register for a free LinuxLink account, download TimeStorm, and activate your evaluation license.
You can evaluate TimeStorm on a Linux host, on a Windows 10 host under WSL, or in a virtualized environment such as VirtualBox. We provide documentation and videos to help you with the experience.
Timesys has extensive experience with embedded system development and lifecycle management. Timesys has been instrumental in working with global leader semiconductor manufacturers with smart, quick and quality solutions for highly complex systems with accelerated product innovation and multiple product variants.
Microsoft, Windows, and Visual Studio are registered trademarks of Microsoft Corporation in the United States and/or other countries.
VirtualBox is a trademark of Oracle in various countries.
VMware is a registered trademark of VMware Inc.
All other company and product names that appear in this blog post are trademarks or registered trademarks of their respective companies.