SAME70 General-purpose NVM Operations

This is a short note on how to deal with SAME70 GPNVM bits. Technically, it is easy and straightforward. The problem is that in different parts of the datasheet there are controversial process descriptions.

More …

Rust Async Executor for Newbies - Part 2

In the previous post, we created the simple executor without any dependencies.

One of the further improvements that we defined was to make it possible to specify a number of tasks that our executor is able to spawn. Previously, it was hardcoded to 4 tasks. Depending on a goal it may be too many. Or even too few. 😁

Anyway, it is always good to be flexible and have an option to specify a number of tasks we need during a build time. Let’s implement that!

More …

Rust Async Executor for Newbies - Part 1

For the time being, I decided to get better understanding of some low-level stuff related to asynchronous programming in Rust. And what can bring your more insights about how things work without inventing your own wheel. 😅

Let’s write a simple asynchronous tasks executor without any dependencies on the well-known crates like futures.

More …

Multi-arch build with Podman

Recently, I have fallen in love with the Fedora distro. And here you have bundled podman as a container engine.

The nice feature of the podman engine is that it is daemonless and allows you to run containers as a root as well as in rootless mode.

Podman engine has Docker-compatible command line interface and has some nice features that have not presented (yet?) in Docker: generating a systemd service files or Kubernetes Pod YAML.

One of the things I miss a lot personally is seamless multi-architecture container builds you have with Docker buildx command.

Below I would like to share a way I perform such builds with podman and friends.

More …

Header-only library CMake install

In this post I would like to show how to write install rules in CMake build system in order to be able to reuse a library later in CMake/non-CMake environment. That may be also useful during library distribution.

As an example we will take the caches library which is the header-only library and discuss adding pkg-config and CMake export support.

More …