Notus is a testing grounds for embedded development projects using Zephyr and C++. It is arranged in the same way as the Zephyr repo is, with the addition of the applications
directory.
The mains goals of this project is to investigating different ways of developing with Zephyr and C++, this includes but isn't limited to:
- Architectural Designs
- Design Patterns
- Build Systems
- Testing
- Error Handling
- Low Level Drivers
- DevOps (CI/CD, Version Control)
- Documentation
The project is in very early stages of development, but please take a look around. Feels free to ask questions in the issues tracker.
This repository makes use of Docker, VSCode and the Dev Containers extension to provide a Linux development environment inside a dev container that has all the tools required to jump straight in. It can be used standalone but it is up to the reader to setup their own environment if thats the route you want to go.
Once you the required programs installed, clone this repo and open it in VSCode. Run the Dev Containers: Open Folder in Container...
command from the Command Palette and select this repos folder. This will start the devcontainer, on first boot this will take 10 - 20 minutes to get started as it downloads all the dependencies and tools.
Once the container has finished building, you will be entered into the container and you can start developing.
Currently all projects use the native_sim
board that allows you to run Zephyr programs on you host system. To build and run any of the programs:
west build -b native_sim <dir with prj.conf in>
./build/zephyr/zephyr.exe
Alternatively you can use VSCode Task. Just open any file in a directory or subdirectory that has a prj.conf
like tests/button/src/main.cpp
and run the Run Local Native Sim
task, this will build and run currently entered project.
- Once this PR has been merge, use
fallback-sha: ${{github.event.workflow_run.head_sha}}
to ensure if the first push fails it can still detect dockerfile changes.