Boardcore is a framework for developing and building missile software for custom boards with Miosix .
Miosix is a lightweigth OS for embedded developing which provides support for basic things such as Threads, GPIO, Time and many other. You can find our fork of the kernel here: skyward/miosix-kernel
Building is made with SBS, which was created to easily compile and reuse code for different boards.
Content
Folder | What's in it |
---|---|
bin/ | compiled binaries that can be flashed on a target board |
build/ | sbs stuff, not interesting |
config/ | miosix external config (boards ecc) |
data/ | configuration (barely used now) |
libs/ | external libs (Miosix kernel as a git submodule) |
obj/ | build folder, not interesting |
scripts/ | some tools (e.g. script for flashing on the boards) |
src/ | sources! |
src/entrypoints | each file here is a 'main' |
src/test | contains the 'main' of every test |
src/shared | objects, drivers and other stuff written by us |
In the main folder you will find sbs.conf which is used to configure the build system.
Getting Started
Install Python, Git and Miosix toolchain. Also, openocd and clang-format are recommended for a better experience.
Clone this repo with the --recursive
option and build everything.
git clone --recursive https://git.skywarder.eu/r2a/skyward-boardcore.git
cd skyward-boardcore
python sbs -v
SBS will start building all the entrypoints. Depending on how many entrypoints there are, this operation can take several minutes. Once SBS finished, check the resulting message: if every build displays an OK message, pat yourself on the back - you've got things working!
What's next?
In the Wiki you will find some first-steps guides (configuring the IDE, building a firmware etc) as well as the coding guidelines and some best practices we adopt.
If you want to contribute to this repository, please read Git Workflow.
If you just want to start messing around, try this.
Useful links
- Miosix Wiki for the installation.
- Miosix Doxygen for the full documentation (classes, constants ecc).
- ELC Handbooks