issue 16 - Embedded systems newsletter

Embedded systems #16

Hardware

Re-enabling JTAG and Debugging the WRT120N
After an interesting article on reversing serial serial port , Craig wrote this new one on reversing a router. Here it describes all he has done to re-enable the JTAG of the router: testing with openocd, fixing the hardware with a solder, and deactivate the reconfiguration of JTAG GPIOs by patching the bootloader and the kernel. This article is very interesting, because when you have to boot for the first times youri newly designed electronics cards, you have to go through the exactly same steps.

Software

Playing with the CPU pipeline
Through a recursive analysis of the different algorithms possible to solve a mathematic function, the author demonstrates how the CPU pipeline, the algorithm and the compiler interact one with another, and how to develop the best algorithm possible according the hardware targeted and the compiler used.

Manually Creating an ELF Executable
If you have ever think that it would be funny to create an ELF binary executable without using a compiler, you are not alone. Robin Hoksbergen has the exactly same definition of pleasure than us and has written this article to share it with us. Your tools to get it done: a x86 machine that can executes ELF files, and a hex editor.

PicoTCP, a TCP/IP stack designed for embedded systems
Think of PicoTCP has a potential alternative Ethernet stack for your next IoT project. PicoTCP was built with embedded systems in mind right from the beginning. Without any architecture dependencies, supporting 8, 16 and 32 bit systems and requiring less than 16 KB of memory, PicoTCP is a professional code base that could be embedded in your projects.

Big-O Algorithm Complexity Cheat Sheet
If like me, you need time to time of the complexity of an algorithm you rarely use, this webpage gathers the Big O analysis of searching algorithms, sorting algorithms, data structures, heaps and graphs.

COMPCERT - COMPILERS YOU CAN FORMALLY TRUST
To create critical embedded software, engineers need to be sure the compiler do not introduce bugs when it compiles the source code into an executable binary. It’s a fact that common compilers (like GCC) have many bugs not acceptable when the product built must ensure the safety of people. COMPCERT is an attempt to formally prove that the resulting binary is exactly conformed of the source code algorithm. To get the formal verification done, Compcert uses under the hood the Coq proof assistant , one of the most advanced tool dedicated to formal verifications.

Pointers In C
When you start to learn C language, pointers are the biggest mysterious feature that you have to master. This article will introduce you, the concept, and to what problems they are the best solution.

The Robot Operating System (ROS) 101
Passionate by robotic you’re still wondering what is the best solution to develop your own robot. ROS could be now the most documented solution since the publication of the ROS 101 articles.

Misc

The Secret Life of SIM Cards
In the issue 11 I linked to an awesome article on <a title=“Hacking MicroSD Cards” hacking MicroSD cards . This video shows that the SIM cards are vulnerable to the same type of attacks. As a related video, Rooting SIM Cards is interesting to watch.

Creating a DCPU-16 emulator in C++11
If you wanted to know what is to write a CPU emulator, check out this video: emulator live coding