Tag:embedded
All the articles with the tag "embedded".
Running Go tools in a browser
Posted on:September 6, 2025 at 10:30 AMQuick overview of how Go tools for the Mrav custom CPU are run inside a browser by leveraging WASM. The project is built with Bazel using Go rules.
RTL generation for custom CPU Mrav
Posted on:August 23, 2025 at 10:30 AMOverview of how SystemVerilog RTL code is generated in the build flow for the Mrav custom CPU core.
Mrav custom CPU software tooling
Posted on:August 16, 2025 at 10:30 AMDeep-dive into software tooling for a custom CPU platform Mrav.
Embedded bare-metal C with Bazel and AVR
Posted on:August 14, 2025 at 07:00 PMPractical example of using Bazel to build an embedded C program, bare-metal. Concrete example with AVR ATmega328p.
Creating an assembler for a custom CPU
Posted on:August 10, 2025 at 12:15 PMExplainer for how Mrav CPU assembler was created. Shortest path towards a small, working assembler for a custom ISA.
Making a custom CPU
Posted on:August 2, 2025 at 03:00 PMFirst part of the series explaining the development of a custom CPU called Mrav and the tooling for it. Lessons learned from working on Google TPU chips.
Cross-compiling C and Go via cgo with Bazel
Posted on:May 31, 2025 at 10:15 AMWalkthrough for cross compiling a mixed C and Go binary for another platform using cgo and Bazel. Example is done with x86_64/Linux compiling for RISC-V/Linux.
Bare metal JavaScript on RISC-V
Posted on:May 14, 2025 at 10:00 PMExplore how to run JavaScript directly on bare metal, like microcontrollers. This post shows you how to get JavaScript code executing on embedded hardware without an operating system, opening up new ways to program these chips. The example is done on a RISC-V VM.
Bare metal printf - C standard library without OS
Posted on:April 26, 2025 at 12:00 PMGuide to implementing a C standard library for bare metal hardware using Newlib, enabling powerful functions like printf and malloc without relying on an operating system. This step-by-step guide demonstrates how to configure and integrate Newlib on RISC-V architecture, showing you how to redirect standard I/O through UART for embedded systems development.
Making my first embedded Linux system
Posted on:June 15, 2024 at 11:00 AMEnd-to-end documentation of a journey from no PCB experience to fabricating my own Linux-ready system that can boot the latest mainline kernel. This article is the recommended reading for someone building their first embedded Linux board. F1C100s SoC is used for this sample board.
Make your own USB storage device using embedded Linux
Posted on:June 9, 2024 at 09:00 AMA guide on using embedded Linux to implement common USB devices, in this case, mass storage device. We'll use mainline Linux on Raspberry Pi Zero, and with 10-15 lines of shell scripting, we'll turn a Raspberry Pi into a flash drive.
Making USB devices - end to end guide to your first gadget
Posted on:June 1, 2024 at 09:00 AMIntroduction to implementing USB devices. Minimal overview of hardware and software with an example with STM32 microcontroller. Also contains an index to very detailed guides for more information.
Run mainline Linux on $5 dollar hardware
Posted on:April 6, 2024 at 11:30 AMLearn how to make a Linux-capable embedded system for less than $5 dollars. Includes an in-depth analysis of how to build and deploy U-boot, with emphasis on the modern U-boot FIT images.
Making a mini computer from scratch with Raspberry Pi and Linux
Posted on:December 9, 2023 at 05:00 PMLearn how to utilize Raspberry Pi and Linux kernel to make your own custom mini computer from scratch, capable of interacting with the user through a keyboard and a screen.
Cross compiling C and C++ with Bazel
Posted on:October 16, 2023 at 05:30 PMLearn how to utilize Bazel's toolchains and platforms to cross-compile C and C++ for another architecture and OS. The example used is cross-compiling for a bare-metal RISC-V machine.
Take full control of Raspberry Pi! 10 MB mainline Linux image for embedded
Posted on:October 15, 2023 at 09:00 AMA guide on building a Raspberry Pi image from scratch using the latest mainline kernel for embedded purposes. Only a few manually built files are involved along with the Linux GPIO drivers to achieve LED flashing.
RISC-V interrupts with a timer example
Posted on:October 9, 2023 at 02:20 PMA detailed example of RISC-V interrupts in C through OpenSBI timer infrastructure.