July 2018: Anniversary Edition

Welcome to the July 2018 edition of the Embedded Artistry Newsletter! This is a monthly newsletter of curated and original content to help you build superior embedded systems. This newsletter is intended to supplement the website and covers topics not mentioned there.

This month marks the one-year anniversary of our newsletter! In this edition, we’ll cover:

  • Looking back at major developments over the past twelve months
  • A new Intel vulnerability announcement
  • C++ conference talks with an embedded focus
  • The new I3C specification
  • Maxim's new DARWIN MCU line
  • Interesting links from around the web
  • Embedded Artistry website updates and popular posts

Looking Back

We’ve been publishing our newsletter for one year. The past twelve months have been eventful for embedded systems. Here are some of the events that stood out to us:

Intel Vulnerability Announcement

A new Intel vulnerability has been announced, dubbed "lazy floating-point (FP) state restore". This vulnerability affects all Intel Core-based microprocessors.

Intel provides a lazy floating-point state restore technique, which delays restoration of a processing state until an instruction operating on that state is executed by a new process. An attacker can take advantage of this technique to infer register values of a different process through a speculative execution side channel. This can be used to retrieve AES encryption keys, which are often stored in the floating-point unit (FPU) registers.

Intel recommends that developers use Eager FP state restore to prevent this vulnerability.

For more on lazy FP state restore:

Embedded C++ Talks

A lot of great Embedded C++ conference talks have been published over the past few months. Here are some of our favorites:

The I3C Specification

A typo led me to discover that the MIPI Alliance has announced the I3C Specification, the successor to I2C. I3C also intends to replace the SPI bus, which has no clearly defined standard and sports multiple implementations. Since GPIO availability is always contentious, many board designers will gladly switch to I3C's two-wire bus if it lives up to the hype. SPI will still maintain an advantage over I3C in high-speed point-to-point use cases, like SPI flash devices.

I3C is still a two-wire interface but unlike I2C, I3C will provide a minimum data rate of 10Mbps. I3C will also support multi-master, slave-initiated communication, dynamic addressing, and power management features (eg. sleep mode). A broadcast address is provided, allowing masters to send command codes to all slave devices at once. I3C lines will be push-pull instead of open-drain, enabling better power consumption per transferred bit. Most I2C slave devices will be able to operate on an I3C bus as long as they have a 50ns glitch filter and do not stall the clock.

I3C is brand new, so I have yet to find any sensors or processors that have shipped with I3C support. I expect we’ll start to see some devices announced later this year and more announced next year.

For more on I3C:

Maxim's DARWIN MCUs Line

Maxim has historically been in the power-IC business, focusing on components such as regulators, fuel gauges, and PMICs. They recently announced a low-power processing line: DARWIN.

The DARWIN MCU line is split into two families:

  • Generation U: Ultra-low power, with flash sizes from 256KB to 2MB, and SRAM sizes ranging from 96KB to 512KB
  • Generation UP: Ultra-low-power + performance, with 3MB flash and 1MB SRAM

The Generation U MCUs feature a Cortex-M4 with an FPU and can be clocked up to 96MHz. Maxim is capitalizing on their power management specialty with their MCUs. The processors include an embedded PMU, provide flexible power modes, and support dynamic clocking (down to 4MHz on the processor clock).

The Generation UP MCU is also a Cortex-M4. The UP MCU can be clocked up to 120MHz and includes SPI execute-in-place (XIP) interfaces. A memory decryption integrity unit (MDIU) provides on-the-fly decryption of data stored in external flash. Power management capabilities are further extended by providing power control over individual SRAM banks.

The Darwin MCU line looks to be an interesting contender in the low-power microcontroller space.

For more on the DARWIN MCUs:

Around the Web

ITHare published A Useable C++ Dialect That is Safe Against Memory Corruption. This article covers using (Re)Actors to help ensure memory safety in our programs.

All About Circuits takes a look at IP tension in Who Really Owns Hardware: Property Rights vs Copyrights

Another great All About Circuits article was Do Engineers Design Anything Anymore? Electrical Engineering in the Age of ICs.

Atomera plans to breathe new life into older chip manufacturing with a technique that involves burying atom-thin layers of oxygen below the surface of a transistor's silicon. This technique reduces variability among transistors and enables designers to make use of larger process technologies.

The Wi-Fi Alliance has announced the Enhanced Open certification to provide improved privacy protections and security on open Wi-Fi networks.

Website Updates

We have done some major revamping of our website this month!

New Articles

The following articles were published on our website in June:

These were our most popular articles in June:

  1. Circular Buffers in C/C++
  2. Jenkins: Configuring a Linux Slave Node
  3. Installing LLVM/Clang on OSX
  4. An Overview of C++ STL Containers
  5. std::string vs C-strings
  6. Jenkins: Running Steps as sudo
  7. A Simple Consulting Services Agreement
  8. Implementing an Asynchronous Dispatch Queue
  9. C++ Casting, or: Oh No, They Broke Malloc!"
  10. Creating and Enforcing a Code Formatting Standard with clang-format

Thanks for Reading!

Have any feedback, questions, suggestions, interesting articles, or resources to recommend to other developers? Simply reply to this email!

While you wait on the next edition, check out the website or follow us on Twitter

Happy hacking!

-Phillip