|
|
Here are some concepts which are useful to know before starting to deal with skyward, boardcore and embedded development.
|
|
|
|
|
|
## Embedded Systems
|
|
|
|
|
|
If you are working with this repository it is very likely that your are developing something that will work on some kind embedded system, so it' useful to know some basics. [Here :link:](https://drive.google.com/drive/u/1/folders/1-rwNgoDdOFnwW-rfaqfmUa5ACIVehvXV) you can find some presentations we did on the topic, in particular:
|
|
|
|
|
|
* [Introduction]()
|
|
|
* [Device Drivers and RTOS]()
|
|
|
|
|
|
More in general, I would suggest to have an idea of how these work:
|
|
|
- Registers
|
|
|
- USART, I2C, SPI
|
|
|
- Interrupts
|
|
|
- PWM
|
|
|
|
|
|
## C++
|
|
|
|
|
|
C++ is a quite vast language that can be very powerful, but also very dangerous for those who don't know it. All the software here is written in C++, so you should start getting familiar with some of these concepts:
|
|
|
|
|
|
- namespaces
|
|
|
- references and pointers
|
|
|
- templates
|
|
|
- `virtual`
|
|
|
- `std::vector` and `std::map`
|
|
|
- `cin` and `cout`
|
|
|
- Doxygen comments like [this](https://github.com/stan-dev/stan/wiki/How-to-Write-Doxygen-Doc-Comments)
|
|
|
|
|
|
Also some basic C knowledge is required, such as:
|
|
|
- `malloc`
|
|
|
- `<<`, `>>`, `&` and `|` bit operators
|
|
|
- `#define`
|
|
|
|
|
|
## Git
|
|
|
|
|
|
We use Git as our source version control system, and we love it. Git is fun, but you should be very careful of doing it the right way:
|
|
|
|
|
|
- Commit messages should always be
|
|
|
```
|
|
|
[topic] Short description
|
|
|
*blank line*
|
|
|
Long description
|
|
|
```
|
|
|
- Learn to use the Issue tab
|
|
|
- Read our [Git Workflow](https://git.skywarder.eu/scs/skyward-boardcore/-/wikis/Git-Workflow)
|
|
|
|
|
|
## Style
|
|
|
|
|
|
- Never use `printf()`. Never. Use `TRACE()` instead, works exactly the same.
|
|
|
- Don't bother reading codestyle rules, just install `clang-format` and apply our `.clang-format` style
|
|
|
|
|
|
## Miosix and Multithreading
|
|
|
|
|
|
Sice we are using an Operating System, you have to be aware of multithreading is:
|
|
|
|
|
|
- [Miosix presentation :link:](https://drive.google.com/drive/u/1/folders/0B41AbAqKq4JnRE1UR2g4VHNQTkk) |
|
|
\ No newline at end of file |