# Embedded Systems Weekly #127

Welcome to issue #127! I hope you all had a great week coding, designing and testing your projects. It is now
the moment to read the selection of links that I put together for you.

**Happy reading!**

## ‟Sponsor
— [Luos Makes Embedded Device Firmware Updates Easy](https://www.luos.io/blog/a-flexible-embedded-bootloader)  
The new Luos bootloader updates all boards without needing physical access to each of them. Now, it’s possible to update firmware on many microcontroller units (MCU) without needing a specific bootloader for each different board. [Get Started →](https://www.luos.io/tutorials/get-started)

## Articles 
[The RS-232 protocol](https://youtu.be/AHYNxpqKqwo)  
After months without tutorials, Ben Eater delivers a new video as good as all the previous ones.
Pedagogically, it is of high quality.

[How to make sure no Dynamic Memory is used](https://mcuoneclipse.com/2022/11/06/how-to-make-sure-no-dynamic-memory-is-used/)  
You know the drill to build a robust system: No dynamic memory allocation. This article gives you tips to configure
your build in order to be sure that no malloc slipped into your final binary. As a bonus, you get a short introduction
on how to use the linker cross reference.

[Writing Verilog code using Python with Migen.](https://www.controlpaths.com/2022/11/07/writing-verilog-code-using-python-with-migen/)  
Following this article, you'll get your first module generated under 1 hour. In issue #91 I linked the
[tool chain Amaranth HDL](https://embedsysweekly.com/embedded-systems-issue91/) an alternative to
[Migen](https://m-labs.hk/gateware/migen/) for abstracting away standard HDL languages with Python.
Check it out too.

[Boolean algebra for noobs: stack alignment](https://yurichev.org/bool2/)  
A short but interesting article that explains why and how the assembly code generated is making a stack alignment.

[TinyCPM - CP/M on a Tiny 2040](https://www.kianryan.co.uk/2022-11-14-tiny-cpm/)  
For the fans of [CP/M](https://en.wikipedia.org/wiki/CP/M) among us, this article will show you how to put
together a CP/M based system so small that you can bring it with you everywhere all the time.

[The unusual bootstrap drivers inside the 8086 microprocessor chip](https://www.righto.com/2022/11/the-unusual-bootstrap-drivers-inside.html)  
Ken Shirriff managed to pull out yet another article on something I didn't know about the 8086. Please tell me that
I'm not the only one who didn't know about this bootstrap driver!

[Creating a pick and place control board with the RP204](https://blog.thea.codes/starfish-a-control-board-with-the-rp2040/)  
No details are let in the dark in this article. Every aspect of the
[pick and place](https://en.wikipedia.org/wiki/Pick-and-place_machine) control board is described clearly with
nice illustrations. It is a really nice article to read.

[How 74HC595 Shift Register Works & Interface it with Arduino](https://lastminuteengineers.com/74hc595-shift-register-arduino-tutorial/)  
This is a good introduction on why and how using shift registers.

## Tools / Libraries
[PRNF](https://github.com/mickjc750/prnf)  
I'm keeping an eye on this lightweight tiny printf alternative. It is one year old and get a 1.0.0 release recently,
but doesn't have any tests. It could become interesting with a bit more QA.

## Misc
[FPGA + PCIe Hardware Accelerator Design Walkthrough (DDR3, M.2, ..)](https://youtu.be/8bw80LiCl7g)  
A walk through of a FPGA-based (Xilinx Artix 7) PCIe hardware accelerator in an M.2 form-factor.

