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.
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).
theCore is now available only from source and hosted solely on GitHub. There are different branches for development and stable versions. Check Branching section for information about branches purpose.
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 platform list along with information about each platform is located in Platforms section.
Here a couple of additional references that you might be interest in:
- Mailing list. For large discussions and announcements.
- theCore Telegram group. For discussions.
- theCore Telegram channel. For announcements.
- theCore Twitter. You can check some announcements there too.
- OpenHub page. Pretty good and explanatory.
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.
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 section for more.
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 guidelines section, leave message at theCore Telegram group, mailing list, gitter, contact me directly at [email protected], 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!