theCore: C++ Embedded Framework

Build Status Join the chat at https://t.me/joinchat/HQF-SEgtMQXoNOq_D71pSg Follow us at https://t.me/theCoreEmbedded Join the chat at https://gitter.im/forGGe/theCore

theCore is the C++ embedded framework for various microcontroller applications, with or without RTOS (bare-metal).

theCore tries to provide all that is necessary to create portable application code:

  • Startup, initialization and periphery code for each supported platform.
  • Build system support for different platform and target configurations.
  • Platform-independent device drivers, like temperature sensors or displays.
  • Optional OS-related abstractions: semaphores, mutexes and threads.
  • Easy-to-deploy development environment.
  • Different libraries and utilities.

Documentation

theCore documentation hosted on GitHub pages and available in two formats: multi-page HTML for ease of navigation and single-page HTML for ease of manual searching.

Doxygen documentation is also available (trough it is not complete).

Where to get theCore

theCore is now available only from source and hosted solely on GitHub. There are different branches for development and stable versions. Check Branching and release model section for information about branches purpose.

Getting started

You can start using theCore by completing guides and tutorials in the Guides section or check the source code of the standalone blinky example project.

It is also worth to look at examples that are placed in examples dir and read the Examples section to understand how to build and launch them.

Supported platforms

Supported platform list along with information about each platform is located in Supported platforms section.

License

The source code is distributed under MPL v2.0 License (Mozilla Public License Version 2.0).

MPL is like LGPL, but with static linking exception.

For many practical cases it means that you can use theCore in your proprietary embedded applications without disclosing the application source code.

Keep it private, if needed. MPL allows you to do that.

Pay note though, that MPL is still a copy-left license. So you are obligated to distribute any changes of theCore itself if there were any.

It is strongly recommended to read MPL 2.0 FAQ to get more familiar with it.

Technologies and projects used

Most notable are:

  • C++11 and C++14 - as a main programming language standards.
  • Python 3 and cog - code generation.
  • Doxygen and Sphinx - in-source and project-wide documentation.
  • CMake - build-system.
  • Nix - development environment management.
  • CppUTest and Unity - unit and on-device testing.
  • Travis - continuos integration.

Check the Credits and acknowledgements section for more.

Contribution & Using

The project is on its very beginning, so any help is more than welcome and highly appreciated. If you’d like to take a part in the project growth and (or) have any questions – take a look at Community and developer guidelines section, leave message at theCore Telegram group, mailing list, gitter, contact me directly at forgge@gmail.com, or simply check out a list of theCore issues.

If you have any suggestions on theCore improvement or just like it how it is, don’t keep silence! I’ll be happy to read your reviews.

You are welcome to use theCore in your own projects. If there is something that it’s not enough for this, please let me know via email or open some issues and we will do our best to handle this ASAP. Good luck!