issue 76 - Embedded systems newsletter

Embedded systems #76

In the UK, the Computer Literacy Project inspired in the 80s a lot of young future engineers. This week BBC makes happy embedded systems developers of this generation by pushing online the whole Computer Literacy Project archive . I’m really sure it’s hours of memories for some of you. If you are interested by the making of of the project the Building the Computer Literacy Project archive article describe who did it and how they did it.

Enjoy #76!

Hardware

Using Records in VHDL
This article describes what is a record in VHDL and what are the advantages of using this feature. It gives good examples on how to use it as well.

I2C Design Mathematics: Capacitance and Resistance
If you were looking for a reference that explains the ins and outs of I2C at the signal level, you have to bookmark this article.

Verilog 6502
The 6502 8 bit microprocessor is a famous 8-bit processor produced for the first time in 1975! Andrew Holmes open sourced this Verilog HDL source code of the 6502 for our pleasure. The history behind the source code is really interesting to read.

Software

Making a low level (Linux) debugger
From the frustration to use main stream debuggers some people react by doing themselves what they need. This article is an example of the tons of things that you can learn when you try to create from scratch a basic tool like a debugger. The part 2 is available here .

Intercepting and Emulating Linux System Calls with Ptrace
In this article the author shows how to simulate the OpenBSD pledge system operation restriction feature with only Ptrace. It shows how to simulate other operating systems calls with the Ptrace request PTRACE_SYSEMU.

A minimal TCP Client in C
For the beginners in network programation, this code sample is a very good start that clarify a lof of things on how to handle a TCP connection.

How Clang Compiles a Function
John describes how a modern compiler like Clang transform a C function to the LLVM Intermediate Representation ( LLVM IR ). Like usual from John every things is well explained and structured.

Compiler fuzzing, part 1
We know that standard testing methods on softwares like compilers are not performing well. How write test cases to cover something that have a very large number of permutabilities? To try to remediate to this problem developers try to use fuzzing testing. In this article Vegard shows a way to optimize compilers fuzzing testing and the bugs he founds thanks to his technique.

3 Simple C++17 Features That Will Make Your Code Simpler You have some troubles to keep yourself up-to-date with the last C++ improvements? Thanks to this article you’ll discover what are structured bindings, template argument deduction and selection initialization. They can really be helpful.

Misc

GNSS-SDR An open source Global Navigation Satellite Systems software-defined receiver
GNSS-SDR is an open source software implementation of a Global Navigation Satellite System. A system that is usually done by hardware with this project can be run on a standard computer. A very interesting project to discover what is hidden behind GPS or Galileo acronyms.

All About ESP32 – Part 1
This article in two parts ( All About ESP32 – Part 2 ) details what to buy when you want to start with the ESP32. It explains how to create you first project and finally it makes us discover how to use the wifi hardware of the ESP32. It’s a good companion if you plan to start with this microcontroller.