... | ... | @@ -2,14 +2,15 @@ Here are some concepts which are useful to know before starting to deal with Sky |
|
|
|
|
|
## Embedded Systems
|
|
|
|
|
|
If you are reading this guide, it is very likely that you will work on some kind embedded system sooner or later, so it's 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:
|
|
|
If you are reading this guide, it is very likely that you will work on some kind embedded system sooner or later, so it's useful to know some basics. Listed here you can find some presentations we did on the topic:
|
|
|
|
|
|
* [Introduction to Embedded Systems](https://docs.google.com/presentation/d/1nw4iXT9VzTU79m23Mcdwbv11BhkN5ngLbFExVh1TVFg/) what is an embedded system?
|
|
|
* [Device Drivers and RTOS](https://docs.google.com/presentation/d/11HyjMUPK58ir1gQ4Jw4BqTVSZJtGLs77W_s3Zjk5PTs) basic blocks for embedded development
|
|
|
* [Introduction to Embedded Systems](https://drive.google.com/file/d/1bfZ2aEDhlwpvcoUo5_3d8MIYgHjhwxe3/view?usp=sharing) what is an embedded system?
|
|
|
* [RTOS and Device Drivers](https://drive.google.com/file/d/1gPGpt7Pw5AtJW9J3DUXGHQ_HdD0oBj5q/view?usp=sharing) basic blocks for embedded development
|
|
|
|
|
|
Moreover, it is a good idea to know something about how these work:
|
|
|
|
|
|
- GPIO
|
|
|
- USART, I2C, SPI
|
|
|
- USART, SPI, CAN
|
|
|
- Interrupts
|
|
|
- Timers and PWM
|
|
|
|
... | ... | @@ -29,6 +30,7 @@ C++ is a quite vast language that can be very powerful, but also very dangerous |
|
|
- static and dynamic allocation
|
|
|
|
|
|
Also some basic C knowledge is required, such as:
|
|
|
|
|
|
- `malloc`
|
|
|
- `stdint.h` that contains things like `uint8_t`, `int32_t` etc
|
|
|
- bitwise operands `<<`, `>>`, `&` and `|`
|
... | ... | @@ -39,11 +41,13 @@ Also some basic C knowledge is required, such as: |
|
|
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
|
|
|
```
|
|
|
|
|
|
```plaintext
|
|
|
[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)
|
|
|
|
... | ... | @@ -51,7 +55,7 @@ Long description |
|
|
|
|
|
Follow our [Codestyle](Coding-Guidelines) guide. Really, do it. As a quick recap:
|
|
|
|
|
|
- Never use `printf()`, use `TRACE()` instead
|
|
|
- Never use `printf()` other than in entrypoints, use `TRACE()` instead
|
|
|
- Every class and function you write should have Doxygen comments like [this](https://github.com/stan-dev/stan/wiki/How-to-Write-Doxygen-Doc-Comments)
|
|
|
- Download the `clang-format` plugin for your favourite IDE and tell it to apply [our .clang-format](https://git.skywarder.eu/scs/skyward-boardcore/-/blob/master/.clang-format) style
|
|
|
|
... | ... | @@ -59,4 +63,4 @@ Follow our [Codestyle](Coding-Guidelines) guide. Really, do it. As a quick recap |
|
|
|
|
|
Sice we are using an Operating System, you have to be aware of what multithreading is. Taking a look at this presentation will give you all the information you need, and even something more.
|
|
|
|
|
|
- [Miosix presentation :link:](https://drive.google.com/drive/u/1/folders/0B41AbAqKq4JnRE1UR2g4VHNQTkk) |
|
|
\ No newline at end of file |
|
|
- [Miosix presentation](https://drive.google.com/drive/u/1/folders/0B41AbAqKq4JnRE1UR2g4VHNQTkk) |
|
|
\ No newline at end of file |