... | @@ -2,14 +2,15 @@ Here are some concepts which are useful to know before starting to deal with Sky |
... | @@ -2,14 +2,15 @@ Here are some concepts which are useful to know before starting to deal with Sky |
|
|
|
|
|
## Embedded Systems
|
|
## 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?
|
|
* [Introduction to Embedded Systems](https://drive.google.com/file/d/1bfZ2aEDhlwpvcoUo5_3d8MIYgHjhwxe3/view?usp=sharing) what is an embedded system?
|
|
* [Device Drivers and RTOS](https://docs.google.com/presentation/d/11HyjMUPK58ir1gQ4Jw4BqTVSZJtGLs77W_s3Zjk5PTs) basic blocks for embedded development
|
|
* [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:
|
|
Moreover, it is a good idea to know something about how these work:
|
|
|
|
|
|
- GPIO
|
|
- GPIO
|
|
- USART, I2C, SPI
|
|
- USART, SPI, CAN
|
|
- Interrupts
|
|
- Interrupts
|
|
- Timers and PWM
|
|
- Timers and PWM
|
|
|
|
|
... | @@ -29,6 +30,7 @@ C++ is a quite vast language that can be very powerful, but also very dangerous |
... | @@ -29,6 +30,7 @@ C++ is a quite vast language that can be very powerful, but also very dangerous |
|
- static and dynamic allocation
|
|
- static and dynamic allocation
|
|
|
|
|
|
Also some basic C knowledge is required, such as:
|
|
Also some basic C knowledge is required, such as:
|
|
|
|
|
|
- `malloc`
|
|
- `malloc`
|
|
- `stdint.h` that contains things like `uint8_t`, `int32_t` etc
|
|
- `stdint.h` that contains things like `uint8_t`, `int32_t` etc
|
|
- bitwise operands `<<`, `>>`, `&` and `|`
|
|
- bitwise operands `<<`, `>>`, `&` and `|`
|
... | @@ -39,11 +41,13 @@ Also some basic C knowledge is required, such as: |
... | @@ -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:
|
|
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
|
|
- Commit messages should always be
|
|
```
|
|
|
|
|
|
```plaintext
|
|
[topic] Short description
|
|
[topic] Short description
|
|
*blank line*
|
|
*blank line*
|
|
Long description
|
|
Long description
|
|
```
|
|
```
|
|
|
|
|
|
- Learn to use the Issue tab
|
|
- Learn to use the Issue tab
|
|
- Read our [Git Workflow](https://git.skywarder.eu/scs/skyward-boardcore/-/wikis/Git-Workflow)
|
|
- Read our [Git Workflow](https://git.skywarder.eu/scs/skyward-boardcore/-/wikis/Git-Workflow)
|
|
|
|
|
... | @@ -51,7 +55,7 @@ Long description |
... | @@ -51,7 +55,7 @@ Long description |
|
|
|
|
|
Follow our [Codestyle](Coding-Guidelines) guide. Really, do it. As a quick recap:
|
|
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)
|
|
- 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
|
|
- 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 |
... | @@ -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.
|
|
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) |
|
- [Miosix presentation](https://drive.google.com/drive/u/1/folders/0B41AbAqKq4JnRE1UR2g4VHNQTkk) |
|
\ No newline at end of file |
|
\ No newline at end of file |