This repository contains Scilla project.
Project is divided into separate directories. Each directory have a README.md
file that describes directory content. Full list is presented below:
- Docs/ - project documentation, contains project and technical documentation
Project uses Google C++ Code Style with certain deviations:
- indentation is done using 4 spaces
- variable names are in camel case
- line length is increases from 80 to 90 symbols
- C++ source files have a
.cpp
extension instead of.cc
- access modifiers are not indented
Use clang-format
utility to format files. Check their website for more information.
Project have a Continious Integration (CI) process to ensure code meets project standards. CI is implemented using pre-commit
utility. A full list of hooks you can see in .pre-commit-config.yaml
file.
You can use VS Code for development. .vscode/
directory contains all files related to VS Code configuration: templates, settings, extensions, etc. Check .vscode/extensions.json
for a list of recommended extensions.
thinker.new-file-template
extension allows us to create files from templates. Project has a cpp_class
template for creating C++ classes and task
template for creating FreeRTOS tasks. You can use them using <Mouse right click> -> New File from Template -> <Select template> -> <Select files> -> <Enter class name> -> <Done>
.
xaver.clang-format
extension allows us to format files using clang-format
in VS Code. Install this extension, add "editor.formatOnSave": true
setting to your .vscode/settings.json
. With this files will be automatically formatting on save.
VS Code features excellent feature called Tasks. They allows to run certain tools and commands using VS Code command prompt instead of going into terminal. Project features tasks for building, cleaning, flashing, etc. Full list of tasks is located in .vscode/tasks.json
. Invoke them using <Ctrl + Shift + P> -> Tasks: Run Task
and select task. For more information see official webpage.
marus25.cortex-debug
extension gives step-by-step firmware debugging on target hardware. It uses tools like openocd
or similiar. For debugging project has a VS Code debug configuration called Cortex Debug
that utilizes this extension. Also using extension we can gain access to GDB server using Debug Console
tab.
Project is licensed under MIT license.
Answer: for some unknown reason CubeMX 6.14.0 which I use generates BSP packet for NUCLEO-64 pin development board, but I have NUCLEO-32 pin board. Because of this LED feature don't work. To solve this I manually port BSP.