115 lines
4.7 KiB
Markdown
115 lines
4.7 KiB
Markdown
# e_bike_tracker_device
|
|
|
|
## Dev Containers
|
|
This repository offers Dev Containers supports for:
|
|
- [Gitpod](https://gitpod.io/)
|
|
- ["Open in Gitpod" button](https://www.gitpod.io/docs/getting-started#open-in-gitpod-button)
|
|
- [VS Code Dev Containers](https://code.visualstudio.com/docs/remote/containers#_quick-start-open-an-existing-folder-in-a-container)
|
|
- [GitHub Codespaces](https://docs.github.com/en/codespaces/developing-in-codespaces/creating-a-codespace)
|
|
> **Note**
|
|
>
|
|
> In order to use Gitpod the project needs to be published in a GitLab, GitHub,
|
|
> or Bitbucket repository.
|
|
>
|
|
> In [order to use GitHub Codespaces](https://github.com/features/codespaces#faq)
|
|
> the project needs to be published in a GitHub repository and the user needs
|
|
> to be part of the Codespaces beta or have the project under an organization.
|
|
|
|
If using VS Code or GitHub Codespaces, you can pull the image instead of building it
|
|
from the Dockerfile by selecting the `image` property instead of `build` in
|
|
`.devcontainer/devcontainer.json`.
|
|
|
|
When using Dev Containers, some tooling to facilitate building, flashing and
|
|
simulating in Wokwi is also added.
|
|
### Build
|
|
- Terminal approach:
|
|
|
|
```
|
|
scripts/build.sh [debug | release]
|
|
```
|
|
> If no argument is passed, `release` will be used as default
|
|
|
|
|
|
- UI approach:
|
|
|
|
The default build task is already set to build the project, and it can be used
|
|
in VS Code and Gitpod:
|
|
- From the [Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette) (`Ctrl-Shift-P` or `Cmd-Shift-P`) run the `Tasks: Run Build Task` command.
|
|
- `Terminal`-> `Run Build Task` in the menu.
|
|
- With `Ctrl-Shift-B` or `Cmd-Shift-B`.
|
|
- From the [Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette) (`Ctrl-Shift-P` or `Cmd-Shift-P`) run the `Tasks: Run Task` command and
|
|
select `Build`.
|
|
- From UI: Press `Build` on the left side of the Status Bar.
|
|
|
|
### Flash
|
|
|
|
> **Note**
|
|
>
|
|
> When using GitHub Codespaces, we need to make the ports
|
|
> public, [see instructions](https://docs.github.com/en/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace#sharing-a-port).
|
|
|
|
- Terminal approach:
|
|
- Using `flash.sh` script:
|
|
|
|
```
|
|
scripts/flash.sh [debug | release]
|
|
```
|
|
> If no argument is passed, `release` will be used as default
|
|
|
|
- UI approach:
|
|
- From the [Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette) (`Ctrl-Shift-P` or `Cmd-Shift-P`) run the `Tasks: Run Task` command and
|
|
select `Build & Flash`.
|
|
- From UI: Press `Build & Flash` on the left side of the Status Bar.
|
|
- Any alternative flashing method from host machine.
|
|
|
|
|
|
### Wokwi Simulation
|
|
When using a custom Wokwi project, please change the `WOKWI_PROJECT_ID` in
|
|
`run-wokwi.sh`. If no project id is specified, a DevKit for esp32 will be
|
|
used.
|
|
> **Warning**
|
|
>
|
|
> ESP32-S3 is not available in Wokwi
|
|
|
|
- Terminal approach:
|
|
|
|
```
|
|
scripts/run-wokwi.sh [debug | release]
|
|
```
|
|
> If no argument is passed, `release` will be used as default
|
|
|
|
- UI approach:
|
|
|
|
The default test task is already set to build the project, and it can be used
|
|
in VS Code and Gitpod:
|
|
- From the [Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette) (`Ctrl-Shift-P` or `Cmd-Shift-P`) run the `Tasks: Run Test Task` command
|
|
- With `Ctrl-Shift-,` or `Cmd-Shift-,`
|
|
> **Note**
|
|
>
|
|
> This Shortcut is not available in Gitpod by default.
|
|
- From the [Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette) (`Ctrl-Shift-P` or `Cmd-Shift-P`) run the `Tasks: Run Task` command and
|
|
select `Build & Run Wokwi`.
|
|
- From UI: Press `Build & Run Wokwi` on the left side of the Status Bar.
|
|
|
|
> **Warning**
|
|
>
|
|
> The simulation will pause if the browser tab is in the background.This may
|
|
> affect the execution, specially when debuging.
|
|
|
|
#### Debuging with Wokwi
|
|
|
|
Wokwi offers debugging with GDB.
|
|
|
|
- Terminal approach:
|
|
```
|
|
$HOME/.espressif/tools/xtensa-esp32-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gdb target/xtensa-esp32-espidf/debug/e_bike_tracker_device -ex "target remote localhost:9333"
|
|
```
|
|
|
|
> [Wokwi Blog: List of common GDB commands for debugging.](https://blog.wokwi.com/gdb-avr-arduino-cheatsheet/?utm_source=urish&utm_medium=blog)
|
|
- UI approach:
|
|
1. Run the Wokwi Simulation in `debug` profile
|
|
2. Go to `Run and Debug` section of the IDE (`Ctrl-Shift-D or Cmd-Shift-D`)
|
|
3. Start Debugging by pressing the Play Button or pressing `F5`
|
|
4. Choose the proper user:
|
|
- `esp` when using VS Code or GitHub Codespaces
|
|
- `gitpod` when using Gitpod
|