... | ... | @@ -2,7 +2,7 @@ Boardcore is an evolving project to which many have contributed over the years, |
|
|
|
|
|
Nothing is written in stone, so if you'd like to contribute with your own discoveries and suggestions, you're more than welcome!
|
|
|
|
|
|
### 📝 Basics
|
|
|
### 📝 Contributing
|
|
|
*Read these before you start coding*
|
|
|
|
|
|
- [**Getting Started**](Basics): what you need to know about Embedded Development, C++, Git etc...
|
... | ... | @@ -16,73 +16,57 @@ Deep dives: |
|
|
|
|
|
- [**LED blink example**](Boardcore-Quick-Start)
|
|
|
- [Flashing on a board](Flashing-on-a-Target-Board)
|
|
|
|
|
|
**Driver Development**
|
|
|
|
|
|
- [GPIO](GPIO-Usage-&-Used-Pins)
|
|
|
- [USART](Serial-Communication)
|
|
|
- [SPI](SPIDriver)
|
|
|
- [I2C]: hw and sw I2C drivers
|
|
|
- [CanBus]: CanBus driver
|
|
|
- [Interrupts](Interrupts)
|
|
|
- [State Machines](State-Machines-Examples-and-Best-Practices)
|
|
|
|
|
|
**Advanced**
|
|
|
**Application Layer**
|
|
|
|
|
|
- [Synchronization]: mutex, cond variables, kernelpause, disable interrupts...
|
|
|
- [Designing a New Board :link:](https://docs.google.com/document/d/1u_3bGkFCiE6X2i0mnaNqzTScY26b-UPJ1Ju_1dFurco): steps to take into consideration when designing a new system
|
|
|
- [BSP (Board Support Package)](BSP)
|
|
|
- [Interfaces](Boardcore-Interfaces)
|
|
|
- [Synchronization]: mutex, cond variables, kernelpause, disable interrupts...
|
|
|
- [State Machines](State-Machines-Examples-and-Best-Practices)
|
|
|
- [Events Cheatsheet](Events-Cheatsheet)
|
|
|
- [Testing](Testing)
|
|
|
- [Watchdogs]
|
|
|
- [Diagnostic Tools]
|
|
|
- [Mavlink](Mavlink)
|
|
|
- [DMA]
|
|
|
|
|
|
### 🛠 Available Components
|
|
|
*Specific documentation about Boardcore components*
|
|
|
**Advanced**
|
|
|
|
|
|
- [Skyward Build System (SBS)](Skyward-Build-System-(SBS))
|
|
|
- [Board Support Package (BSP)](BSP)
|
|
|
- [Designing a New Board :link:](https://docs.google.com/document/d/1u_3bGkFCiE6X2i0mnaNqzTScY26b-UPJ1Ju_1dFurco): steps to take into consideration when designing a new system
|
|
|
|
|
|
- [Skyward Build System](Skyward-Build-System-(SBS))
|
|
|
|
|
|
<details>
|
|
|
<summary>[Interfaces](Boardcore-Interfaces)</summary>
|
|
|
### 🛠 Available Components
|
|
|
*Specific documentation about Boardcore components*
|
|
|
|
|
|
- [Singleton](Boardcore-Interfaces#singleton)
|
|
|
- [ActiveObject](Boardcore-Interfaces#active-object)
|
|
|
- [EventHandler]: anything that can handle events (reads continuously from an event queue)
|
|
|
- [FSM]: Finite state machine, handles events using the current state's handler
|
|
|
- [HSM]: Hierarchical State Machine
|
|
|
</details>
|
|
|
|
|
|
<details>
|
|
|
<summary>Stand-alone Components</summary>
|
|
|
|
|
|
- [SensorManager](SensorManager): Periodically samples a set of sensors at different given frequencies through a high-priority, single-threaded TaskScheduler.
|
|
|
- [Logger](Logger): performs triple buffering to optimize SD cart writes.
|
|
|
- [EventBroker]: central component used in a publish-subscribe architecture to dispatch events between FSMs
|
|
|
</details>
|
|
|
|
|
|
<details>
|
|
|
<summary>Diagnostic Tools</summary>
|
|
|
|
|
|
- [CPUMeter]: measure CPU usage
|
|
|
- [StackLogger]: measure stack usage for each thread
|
|
|
</details>
|
|
|
|
|
|
<details>
|
|
|
<summary>Drivers</summary>
|
|
|
|
|
|
- [SPIDriver](SPIDriver)
|
|
|
- [Mavlink](Mavlink)
|
|
|
- [CAN bus]
|
|
|
</details>
|
|
|
|
|
|
<details>
|
|
|
<summary>Utilities</summary>
|
|
|
|
|
|
- [PinObserver]: execute something on GPIO transitions (without using interrupts)
|
|
|
- [ButtonHandler]: do something when the button is pressed (or pressed for a long time)
|
|
|
- [Queues]: syncQueue, syncCircularBuffer, SyncPacketQueue. Other Queues can be found in MIOSIX's queue.h
|
|
|
</details>
|
|
|
|
|
|
### :recycle: Misc
|
|
|
|
|
|
*Cheat Sheets*
|
|
|
- [Git Cheatsheet](Git-Cheat-Sheet)
|
|
|
- [Events Cheatsheet](Events-Cheatsheet)
|
|
|
- [Eclipse IDE Configuration](Eclipse-Configuration)
|
|
|
- [Visual Studio Code Configurations] |
|
|
\ No newline at end of file |