issue 18 - Embedded systems newsletter

Embedded systems #18

Hardware

EZ8 : The easy 8-bit processor
EZ8 is a new open source 8-bit processor written in verilog. It’s a pipelined processor (3 stage) that can be used with any Cyclone V board by modifying the pin configuration. With the verilog source code, there is also an emulator of the same processor written in C and an assembly compiler to build programs for this processor. A comprehensive set of tools.

Arduino UNO(r3) component map
A website that overlaps a photo of the Arduino UNO board, with the name and the goal of a component when you move your mouse over this component. If you are a Rpi hacker, the Raspberry Pi component map is also available for you.

Software

Volatiles Are Miscompiled, and What to Do about It
A very complete study that demonstrates how volatile qualifier is broken in some ways for many compilers. The paper concludes by giving advices to avoid the volatile qualifier problems.

Paranoid Programming
The software robustness and safety is a line-to-line work that should be a systematic flow of development composed with several methods. In this article John Regehr lists plenty of paranoid techniques to code a high level software quality.

Minimal Linux setup for kernel development
Wanting to develop kernel components can be intimidating. This articles makes a good job by eliminating all the questions between you and you first dummy Linux kernel

Are We Shooting Ourselves in the Foot with Stack Overflow?
Miro Samek wrote a very interesting and practical article on stack overflows. he begins by referring the case of Toyota cars unexpected acceleration demonstrated by Michael Barr and then describes a method to avoid unknown states caused by stack overflows and to generate immediately a system failure manageable. His method consists in change the stack growth direction and to code appropriately handlers of exceptions generated automatically by the hardware

Using QEMU to navigate a 3000 tons ship
A very interesting case that demonstrates that the QEMU emulator can save a system threatened by the obsolescence of its electronics elements. An old hardware emulate in a new one that executes the the old software, very good.

Comparison of C/POSIX standard library implementations for Linux
The choice of a standard library for an embedded Linux is often the subject of several reports and long discussions. With this table that compares many aspects of standard libraries (performance, features, target architectures,..) you can initiate your own comparison table quickly with no effort. Note : The table is subjective as it is done by the author of musl, one of the library compared

Misc

Learn C, Then Learn Computer Science
Is there something that should come first between learn computer science and learn C programming? This article brings its own reasoned answer and it deserves to be read.

Embedded Systems: A Look At How Embedded OS Have Evolved & Where They’re Headed
Illustrated by a beautiful infographic. From 1960, the first modern embedded systems, to 2014, the entry of Android in embedded systems world.