5 Reasons Why I Dread Writing Embedded GUIs

A consequence of the massive adoption of Internet of Things technologies across all industries is an increasing need for embedded development skills. Yet, embedded development has historically been a pretty complex domain, and not something that one can add to their skillset overnight.

Luckily, over the last decade, silicon vendors have put a lot of effort into simplifying embedded development, especially for people with little to no experience in the domain. Communities such as Arduino and PlatformIO have also immensely contributed to providing easy-to-use tools and high-level libraries that can hide most of the scary details—yes, assembly, I'm looking at you!—of embedded programming while still allowing for professional applications to be written.

How to Use Rust for Embedded Development

Rust is a language that empowers everyone to build reliable and efficient software. It features:

  • High Performance: Rust features amazingly fast speed and high memory utilization.
  • Reliability: Memory errors are able to be eliminated during compilation.
  • Productivity: Great documentation, a friendly compiler with useful error messages, and top-notch tooling are just a few of Rust's benefits. It comes with an integrated package manager and build tool, smart multi-editor support with auto-completion and type inspections, an auto-formatter, and more.

Why Use Rust for Embedded Development?

Rust is designed to guarantee both security and high performance. The design philosophy fits right into what embedded development requires.

Port Operating Systems to New Chip Architectures

I was once asked why computers are called "computers" when they do so much more than compute numbers. A modern PC browses the internet, plays audio and video, generates beautiful graphics for video games and movies, simulates and predicts complex weather patterns and epidemiological risks, brings architectural and engineering blueprints to life, and much more.

The reason computers can do all of this because all these problems can be expressed as numerical equations, and the computer's CPU—its central processing unit—is actually little more than a simple calculator.

Bare Metal Vs The World: When And Why To Use This IoT OS

Introduction

Not all operating systems are built equal. In fact, there is plenty of variety when it comes to multitasking, overheads, memory use, and more. This spectrum of choices can make things difficult for Internet of Things (IoT) developers when it comes to choosing the right system for their device.

One type that is uniquely suited to connected devices—at least basic ones—is Bare Metal. Just as a Bare Metal server only hosts one tenant at a time, a Bare Metal environment is entirely dedicated to running a single application. This is in stark contrast to regular operating systems which run multiple programs simultaneously. Let’s take a look at the different types of operating systems and consider which is best when it comes to IoT.