Embedded Systems Weekly #122
Tags: embedded, cpp, rust
Published: 2022-10-14 15:08:51

Happy Friday and happy issue #122! Since last week, I started to collect information on companies that will be included first in the directory I'm building. The directory is a bit special because it is free, it is public, and it is dedicated to small companies (<50 people) with an activity on embedded systems > 20%. To help me find as many companies as possible, please, send an email to [embedsys@embedsysweekly.com](embedsys@embedsysweekly.com), so I can add your company. Thank you!

**Happy reading!**

## Articles 
[LLVM RFC: C++ Buffer Hardening](https://discourse.llvm.org/t/rfc-c-buffer-hardening/65734)
This ongoing open Request For Comments is very interesting to read to have an idea in which ways compilers can improve the safety of C++ codebase. The first idea proposed, is to simply abort programs when they use undefined behaviors. The second idea, is to create Safe Buffers Programming Model that will emit warnings on any pointer arithmetic. All the thread deserves to be read.

[A Tutorial on Portable Makefiles](https://nullprogram.com/blog/2017/08/20/)
The article is using a game example to cover the fundamentals of a portable Makefile but the main point still stands. For Makefiles, like many other tools, it's confusing to navigate between the different implementations that look the same but are subtly different. Chris Wellons shares his experience, to help us create future-proof Makefiles.

[DIY out-of-band management: remote power button](https://michael.stapelberg.ch/posts/2022-10-09-remote-power-button/)
A small and interesting project that describes how to push a PC’s power button remotely using MQTT, an ESP32 microcontroller, a MOSFET, a resistor, and a few jumper wires. Warning: it is programmed in Go.

[Hard Mode Rust](https://matklad.github.io/2022/10/06/hard-mode-rust.html)
The article starts with the usual concerns raised against Rust by embedded systems developers. Quickly, it demonstrates that they all can be avoided by using specialised programming practices. I believe it's a must-read.

[The seL4 Microkernel, An Introduction](https://sel4.systems/About/seL4-whitepaper.pdf)
seL4 has been the first OS kernel proven correct at the source code level. This paper is a lot more than an introduction regarding seL4. It gives technical pointers on what it takes to produce a secure and realtime system.

## News / Business
[TSMC Reports Third Quarter](https://investor.tsmc.com/english/encrypt/files/encrypt_file/reports/2022-10/a924f47cae2629ecb5f8801629cf7fb8773e5444/3Q22EarningsRelease.pdf)
TSMC, the world's most valuable semiconductor company, releases its quarterly report, and the results are very good. I think it's good to have a look at the report to have a high level idea of what are the figures of the market leader.

## Tools / Libraries
[Protonema Electronics Prototyping and Learning System](https://github.com/dslik/protonema)
Protonema is David Silk effort to provide a turnkey, extensible and low-cost development system for professionals prototyping and for universities. According to him, the Protonema combines the best of breadboarding with the best of surface-mount technology. He provides complete [assembly documentation](https://dslik.github.io/protonema/stamps/1031A/1031-8010.pdf) and he is working on more than 25 modules (called stamps). That's a huge quantity of work. Thank you, David!

## Jobs
[KOKO Networks, Senior Embedded Software Engineer, Full-time, Nairobi, Kenya (Partially remote)](https://jobs.embedsysweekly.com/job/YL0DeNNY/senior-embedded-software-engineer)
KOKO Networks is a venture-backed climate-tech company with 1,200+ employees across East Africa & India. Their mission is to imagine and deliver technology that improves life in the world’s fastest growing cities.

## Misc
[Make your QEMU 10 times faster with this one weird trick](https://linus.schreibt.jetzt/posts/qemu-9p-performance.html)
The article title does not give justice to the content. It's a pleasant walk through of a performance issue in the QEMU code. The conclusion is a patch accepted by QEMU maintainers. Personally, I find this article illustrates perfectly that #1 quality a computer engineer should have is curiosity.