Skip to content
Embedded Artistry Templates, Documents, and Source Code
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
build @ 66c2ba3 Migrate buildsystem from Premake to Meson Mar 2, 2019
docs Advance submodule pointers Sep 5, 2018
examples Move stdbool to circular_buffer header Mar 13, 2019
interview Migrate buildsystem from Premake to Meson Mar 2, 2019
manufacturing Move MAC allocation tracker from embedded-artistry to ea-docs. Dec 10, 2016
tools Advance submodule pointers Sep 5, 2018
.gitattributes Expand lfs for bin/ folder Apr 10, 2017
.gitignore
.gitmodules Migrate buildsystem from Premake to Meson Mar 2, 2019
LICENSE Adjust license for creative commons zero Dec 10, 2016
Makefile Actually update makefile for new meson builds Mar 3, 2019
README.md Migrate buildsystem from Premake to Meson Mar 2, 2019
meson.build
meson_options.txt Migrate buildsystem from Premake to Meson Mar 2, 2019
resources.sublime-project Add a sublime project config Mar 2, 2019

README.md

embedded-resources

Embedded Artistry Public Resources

Contains templates, documents, and source code examples referenced on https://embeddedartistry.com.

Table of Contents

  1. Requirements
    1. git-lfs
    2. meson
  2. Structure
  3. Building

Requirements

git-lfs

This repository requires git-lfs. If you do not have this installed, please visit https://git-lfs.github.com

If you cloned this repository before installing git-lfs, please run git lfs pull. Otherwise clone will automatically perform a git lfs pull.

meson

This repository builds with meson, which requires Python 3 and Ninja.

On Ubuntu these can be easily installed with the following command:

$ sudo apt-get install python3 python3-pip ninja-build

For OSX, you can use brew:

$ brew install python3 ninja

The best way to get Meson is through pip:

$ pip3 install meson

Structure

  • build/
    • Common build scripts and definitions
  • docs
    • Open-source project templates and reference documentation
  • examples/
    • c/
      • C examples for the Embedded Artistry website
    • cpp/
      • C++ examples for the Embedded Artistry website
    • libc/
      • Example libc implementations
    • libcpp/
      • Example libcpp implementations
  • interview/
    • Example interview question implementations
  • manufacturing/
    • Documents & templates that are useful for the manufacturing side of the embedded world.

Building

You can run make from the top level to build all examples. Output will be placed in a folder called buildresults/ at the top level.

You can also use the proper meson syntax:

$ meson buildresults
$ cd buildresults
$ ninja

Targets can be built individually by using the ninja interface in the buildresults/ directory.

$ cd buildresults
$ ninja interview/bad_c

To clean the builds, run make clean from the project root or ninja clean in the buildresults/ directory.

Binaries will be stored under the buildresults/ folder at the same hierarchical level as in the source tree.For example, the bad_c interview demo application will be in buildresults/interview/.

Further Reading

You can’t perform that action at this time.