Mike’s Place

Low Level

Here are the pages tagged 'low-level':

C++ in Micro Environments

This is a follow-up to my Minimal C++ article. It might be helpful to read that article first, in order to understand the context better.

Here, I present a relatively refined—and featherweight—method for using C++ in “micro” environments: think 16- or 32-bit microcontrollers with memory on the order of 64–256 KiB of storage, usually split between the program and runtime memory (RAM).

Read the full post…

Minimal C++

I keep talking about—and getting asked about—something that I refer to as “Minimal C++”. To be clear, there are a few points I should start of by stating explicitly: This is not—as far as I’m aware—a term used elsewhere. It is not a new, different, or distinct language from C++. It is simply a model for using C++ that is different from the traditional heavyweight model using the C++ standard runtime and standard template libraries.

Read the full post…

Creating Statically Linked ELF Executables

This writeup was inspired by a conversation on Mastodon. The Problem It is really easy to do something silly with an ELF file, such as accidentally create a dynamically-linked one as opposed to a statically-linked one. This is incredibly easy to do because in nine out of ten situations, you want to create an ELF program that uses shared libraries. Also, perhaps counter-intuitively, when linking a PIE binary, it is an ELF shared object with an entrypoint, not an ELF executable.

Read the full post…