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
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
LICENSE
Makefile
README.md Migrate buildsystem from Premake to Meson Mar 2, 2019
meson.build
meson_options.txt
resources.sublime-project

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.