Develop Your Windows Apps on Arm-Based Hardware

By Rich Nass

Contributing Editor

Embedded Computing Design

September 20, 2023

Sponsored Story

Develop Your Windows Apps on Arm-Based Hardware

As you would expect, “Windows on Arm” refers to a version of the Microsoft Windows operating system that’s designed to run on devices powered by Arm-based processors. Such devices are quite plentiful. They are in most of our smartphones, tablets, and a slew of other low-cost devices, many of them powered by batteries.

The Windows on Arm initiative aims to bring the full Windows experience to devices beyond the traditional x86 and x64 architecture.

While we typically think of the CPU core when discussing Arm-based SoCs, there are other functions that typically reside within that same piece of silicon. This could include GPUs, Bluetooth and Wi-Fi, and even neural processor units (NPUs) for accelerating AI workloads. Arm-based processors work well on many devices due to power efficiency. In most cases, battery life on end devices is superior to devices based on an X86 architecture.

A Thriving Ecosystem

The popularity of the Arm architecture has resulted in an extremely comprehensive ecosystem. If you need a tool, a driver, or some IP, even something that’s relatively obscure, there’s a good chance it’s available. And in most cases, the code is available as open source.

With the release of Windows 10, existing unmodified x86 apps could be run on Arm devices. With Windows 11, Microsoft upped the ante even further to enable unmodified x64 Windows apps to run on those Arm-based devices. Hence, from the users’ perspective, the majority of their existing applications and tools could be deployed on Arm-based devices.

For maximum performance, users would be better suited running Arm-native Windows apps, rather than conventional x86 apps running in emulation. While the latter will run, performance will not be on par with the native apps.

The Advantech Windows Dev Kit comes pre-loaded with Windows 10 IoT on ARM to enable designers expedite their Windows on Arm software development.

The Dev Platform Is Here

To help developers create those applications, Advantech has released the Windows Dev Kit. The Arm-based CPU, in this case, is powered by Advantech’s EPC-R3720 with NXP i.MX 8M Plus. This compact form factor compute platform boasts both extreme performance and power efficiency. EPC-R3720 is an ARM® Cortex®-A53 i.MX8MPlus-based secured, compact-sized, low-power Edge AI Box, best for Edge AI Inference with Neural Network Accelerator up to 2.3 TOPS, HDR-Capable ISP of 375 MPixels/s, with a wide range of I/O extension and oriented for industrial automation.

This Windows on ARM Development Kit is purpose-built with everything needed to develop, debug, and test native Windows apps for Arm. With the kit, developers can even create battery-powered AI accelerated experiences in a platform that runs for multiple days on a single-charge.

Without a platform like Advantech’s WoA Development Kit, developers would typically write their code and build the associated app binaries on an x64 Windows PC, and then copy those built binaries over to an Arm device to run or test the app. Debugging would then be done remotely through that x64 PC.

Now, Windows developers can build, test, and debug Arm-native apps alongside all their favorite productivity tools, including Visual Studio, Windows Terminal, WSL, VSCode, Microsoft Office, and Teams. In addition, new tools are continuing to come on-line to support the Windows on Arm initiative. This includes WinDBG and Git, libraries like VC++ Runtime, and a host of runtimes and frameworks, such as .NET 6 and .NET 7, OpenJDK Java, Python, Node JS, CLANG/LLVM, and gcc. As you would expect, Cloud support comes in the form of Azure, with Arm VMs, as well as GitHub.

Also note that with Arm64EC (Emulation Compatible), developers can incrementally build new apps, or port existing apps, that take advantage of native Arm performance where possible, while utilizing existing x64 code and libraries until fully migrated.

While not the ideal scenario, applications can run in emulation mode. This allows any existing x86 win32 app to run without any modifications to the app. In fact, the app doesn’t even know that it is running on a Windows on Arm PC, unless it calls specific APIs. The WOW64 layer of Windows lets the x86 code to run on the Arm64 version of Windows. The x86 emulation works by compiling blocks of x86 instructions into Arm64 instructions with optimizations to improve performance.

Note that WOW64 is the x86 emulator that lets 32-bit Windows-based applications run seamlessly on 64-bit Windows. WOW64 is provided with the operating system and needn’t be explicitly enabled. And as previously noted, while Windows on Arm can run unmodified X86 and x64 applications, maximum performance and battery life will be achieved by designing those applications to run natively on Arm from the beginning.

Advantech offers a slew of products aimed at developers of Windows on Arm, ranging from development kits to modules, to boards, to complete embedded PCs.

In addition to the kit described above, a host of other hardware options are available from vendors like Advantech. For example, the company offers Arm-based embedded computers, single-board computers, and computer-on-modules with CPUs from industry leaders like NXP. In addition, Advantech offers development kits that include a series of carrier boards and starter kits with schematic software and reference designs to accelerate evaluation.

Rich Nass is a regular contributor to Embedded Computing Design. He has appeared on more than 500 episodes of the popular Embedded Executive podcast series, and is a regular contributor to the Embedded Insiders podcast.

Rich has been in the engineering OEM industry for more than 35 years, and is a recognized expert in the areas of embedded computing, Edge AI, industrial computing, the IoT, and cyber-resiliency and safety and security issues. He writes and speaks regularly on these topics and more.

Rich is currently the Liaison to Industry for the Embedded World North America Exhibition and Conference, and has held similar positions with the global Embedded World Conference and Exhibition.

Previously, Rich was the Brand Director for UBM’s award-winning Design News property. Prior to that, he led the content team for UBM Canon’s Medical Devices Group, as well all custom properties and events.  In prior stints, he led the Content Team at EE Times, handling the Embedded and Custom groups and the TechOnline DesignLine network of design engineering web sites.

Nass holds a BSEE degree from the New Jersey Institute of Technology.

Podcast/Interview Coverage

Sonatus The Garage Podcast

onalytica Interview

Dev Talk with Rich and Vin

Embedded Executive Podcast

Semiconscious Webcast

IEEE Awards Frede Blaabjerg Talks EVS

Atmosic: Embedded Executive: Energy Harvesting Podcast

 

Article Coverage

Embedded AI Isn’t Enterprise AI, and That’s a Good Thing

Tear Down: Google Pixel Watch 4

Protect Your Home from Thieves and Floods

Advantech Teams With AMD To Maximize Performance at the Edge

Tear Down: Noise Luna Ring

 

View additional information

Muck Rack

More from Rich