Skip to content
@embeddedartistry

Embedded Artistry

Helping you build superior embedded systems

👋 Hello!

Welcome to Embedded Artistry's GitHub repository collection!

If this is your first time coming across us, take a look at our Welcome page.

Repository Breakdown

We host a number of repositories, but not all of them are necessarily useful to our visitors - some are forks of repositories we rely on, and others support our development and website infrastructure.

Here's a breakdown of what we think might be interested for our visitors.

  1. embedded-resources
  2. Document Templates
  3. Reusable Infrastructure
  4. Standard-like Libraries

embedded-resources

The embedded-resources repository contains example code and other resources that are referenced in articles on our website.

Document Templates

We like to keep our documentation under revision control and in the same repository as our source code. The templates repo contains a number of documentation templates that we use on our projects.

Standard-like Libraries

We provide a number of "standard-like" libraries that can be used on embedded projects (primarily targeted at ARM microcontrollers, which is what we work on). These libraries are not necessarily standard conformant; we focus on including a subset of functionality that is useful in microcontroller development. For a more complete and conformant solution, we recommend picolibc.

  • libc
  • libcpp (llvm libcxx with modifications)
  • libmemory - a memory management library for microcontrollers; provides a freelist malloc implementation along with sample RTOS wrappers
  • compiler-rt - wraps the llvm compiler-rt repository and enables users to use it in meson-based projects.

Reusable Infrastructure

  • project-skeleton - The reusable skeleton we use to start new projects using the Meson build system; comes with out-of-the-box support for a number of tools and ensures every project starts with full CI support
  • meson-buildsystem - Our reusable Meson build system modules
  • cmake-project-skeleton - The reusable skeleton we use to start new projects using the CMake build system; comes with out-of-the-box support for a number of tools and ensures every project starts with full CI support
  • cmake-buildsystem - Our reusable CMake build system modules
  • cppcheck-rules - A collection of CppCheck rules that we use on our projects
  • vale-styleguide - The vale style rules that we use for documentation linting on our projects
  • jenkins-pipeline-lib - A collection of Jenkins functions that we use across our projects

Arduino

Embedded Virtual Machine

We maintain two additional GitHub organizations for our Embedded Virtual Machine project. This project aims to demonstate techniques that can be used to improve embedded software development.

Contributor Guidelines

We welcome contributions from the community for all of our projects. If you are interested in contributing, please review the following information:

If you are unfamiliar with open source development, you will want to start with our Open Source Contribution Guide.

Pinned Loading

  1. embedded-resources embedded-resources Public

    Embedded Artistry Templates, Documents, and Source Code

    Makefile 616 291

  2. libc libc Public

    libc targeted for embedded systems usage. Reduced set of functionality (due to embedded nature). Chosen for portability and quick bringup.

    C 524 67

  3. libmemory libmemory Public

    Embedded systems memory management library. Implementations for malloc(), free(), and other useful memory management functions

    C 218 44

  4. templates templates Public

    Document templates for open-source projects (README, CONTRIBUTING, GitHub templates)

    Groovy 393 1.4k

  5. project-skeleton project-skeleton Public template

    A C & C++ project skeleton for new Embedded Artistry projects

    Meson 23 3

  6. cmake-project-skeleton cmake-project-skeleton Public template

    Reusable project skeleton for embedded C & C++ projects using CMake.

    Shell 46 6

Repositories

Showing 10 of 43 repositories
  • libcpp Public

    Embedded Systems C++ Library Support (Currently wraps libcxx)

    embeddedartistry/libcpp’s past year of commit activity
    C++ 70 MIT 12 8 0 Updated Nov 11, 2024
  • meson-buildsystem Public

    Helper scripts, cross-compilation-files, makefile shims, and other helpful tools for working with Meson

    embeddedartistry/meson-buildsystem’s past year of commit activity
    Meson 31 MIT 8 0 0 Updated Oct 11, 2024
  • git-filter-repo Public Forked from newren/git-filter-repo

    git-filter-repo modifications for preserving signed commits (with a custom fork of git)

    embeddedartistry/git-filter-repo’s past year of commit activity
    Python 0 749 0 0 Updated Sep 18, 2024
  • git Public Forked from git/git

    git fork to support preserving signed commit information with fast-export/import

    embeddedartistry/git’s past year of commit activity
    C 0 26,744 0 0 Updated Sep 18, 2024
  • twentyseventeen-child Public

    Child theme modifications for the Embedded Artistry Website

    embeddedartistry/twentyseventeen-child’s past year of commit activity
    CSS 0 0 0 0 Updated Sep 3, 2024
  • embedded-resources Public

    Embedded Artistry Templates, Documents, and Source Code

    embeddedartistry/embedded-resources’s past year of commit activity
    Makefile 616 CC0-1.0 291 4 0 Updated Aug 26, 2024
  • cmake-project-skeleton Public template

    Reusable project skeleton for embedded C & C++ projects using CMake.

    embeddedartistry/cmake-project-skeleton’s past year of commit activity
    Shell 46 Apache-2.0 6 0 0 Updated Jun 15, 2024
  • compiler-rt Public

    Wrapper project for llvm compiler-rt, using meson to build and use with the embedded framework

    embeddedartistry/compiler-rt’s past year of commit activity
    Meson 5 MIT 4 1 0 Updated May 21, 2024
  • libmemory Public

    Embedded systems memory management library. Implementations for malloc(), free(), and other useful memory management functions

    embeddedartistry/libmemory’s past year of commit activity
  • libc Public

    libc targeted for embedded systems usage. Reduced set of functionality (due to embedded nature). Chosen for portability and quick bringup.

    embeddedartistry/libc’s past year of commit activity