51 lines
2.3 KiB
ReStructuredText
51 lines
2.3 KiB
ReStructuredText
.. SkullC documentation master file, created by
|
|
sphinx-quickstart on Wed Jul 7 13:46:52 2021.
|
|
You can adapt this file completely to your liking, but it should at least
|
|
contain the root `toctree` directive.
|
|
|
|
Welcome to SkullC's documentation!
|
|
==================================
|
|
|
|
**SkullC** is a C++17 library, composed of various modules, meant for **embedded software** development. The code is presently
|
|
licensed under MIT and can be freely found in `the Git repository here <https://git.skullnet.me/erki/skullc-peripherals>`_.
|
|
|
|
The library contains abstractions for commonly used peripheral devices, general utility functions, and an abstraction over
|
|
FreeRTOS for RTOS based programming. A lot of it is developed as I go, with some components having more questionable design
|
|
as others (since some are implemented as thought-exercises at first). This also speaks about API stability: things may change.
|
|
|
|
Most of this library has been tested and built for the STM32 boards. Though in theory, the code is not reliant on any specific
|
|
HAL and can be expanded to work on any system for which you implement the required interfaces.
|
|
|
|
Contents
|
|
--------
|
|
|
|
You will find 3 large modules here.
|
|
|
|
The :doc:`peripherals` contains both abstractions over the ST HAL and various other peripheral devices, such as IMUs,
|
|
displays, etc.
|
|
|
|
The :doc:`utility` contains various "software" helpers, abstractions, etcetera, that don't necessarily interface with
|
|
hardware, but in general provide helpful tools for embedded development. This includes logging functionality, a drawing
|
|
abstraction, and so forth.
|
|
|
|
The :doc:`threads` is a set of various C++ abstractions over FreeRTOS. With the key highlight being an implementation of
|
|
a signalling system, and the actor model of asynchronous processing.
|
|
|
|
Usage
|
|
-----
|
|
|
|
The library is made to be as build-tool agnostic as possible. All modules can simply be dropped into whatever IDE/project
|
|
structure you have, and then used. No major configuration is necessary. Most modules are header-only, some require additional
|
|
source files to be compiled and linked.
|
|
|
|
For development use, cmake is used to enable unit testing (and should also function for integration with cmake projects).
|
|
Conan and catch2 are additional dependencies for unit testing and CI work.
|
|
|
|
.. toctree::
|
|
:maxdepth: 2
|
|
:caption: Contents:
|
|
|
|
peripherals.rst
|
|
utility.rst
|
|
threads.rst
|