Compare commits
9 Commits
3477af7a5a
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 9ad7064843 | |||
| e1ec3b86a7 | |||
| 1a27520353 | |||
| 6e7eeca437 | |||
| 15ff6ceb0a | |||
| 5ab8ddae6d | |||
| faa6e5ffbe | |||
| 646d69a2ae | |||
| 1ad75dd604 |
BIN
img/recovery_1.png
Normal file
BIN
img/recovery_1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 107 KiB |
BIN
img/recovery_2.png
Normal file
BIN
img/recovery_2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 517 KiB |
BIN
img/recovery_3.png
Normal file
BIN
img/recovery_3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
BIN
img/recovery_4.png
Normal file
BIN
img/recovery_4.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 198 KiB |
33
main.qmd
33
main.qmd
@@ -3,7 +3,7 @@ title: "NeoECU Development Environment"
|
|||||||
author:
|
author:
|
||||||
- name: Hector van der Aa
|
- name: Hector van der Aa
|
||||||
email: hector@h3cx.dev
|
email: hector@h3cx.dev
|
||||||
affiliation: Version 0.2.1
|
affiliation: Version 0.2.2
|
||||||
date: today
|
date: today
|
||||||
date-format: long
|
date-format: long
|
||||||
format:
|
format:
|
||||||
@@ -11,12 +11,15 @@ format:
|
|||||||
mainfont: Inter
|
mainfont: Inter
|
||||||
codefont: "JetBrains Mono"
|
codefont: "JetBrains Mono"
|
||||||
papersize: a4
|
papersize: a4
|
||||||
|
margin:
|
||||||
|
x: 2cm
|
||||||
|
y: 2cm
|
||||||
toc: true
|
toc: true
|
||||||
---
|
---
|
||||||
```{=typst}
|
```{=typst}
|
||||||
#set page(
|
#set page(
|
||||||
header: align(right)[
|
header: align(right)[
|
||||||
Version 0.2.1
|
Version 0.2.2
|
||||||
],
|
],
|
||||||
numbering: "1",
|
numbering: "1",
|
||||||
)
|
)
|
||||||
@@ -351,6 +354,12 @@ If this succeeds then your build environment is set up correctly! You should see
|
|||||||
|
|
||||||
# NeoECU Tooling Overview
|
# NeoECU Tooling Overview
|
||||||
The NeoECU tooling harmonizes the STM32 and Zephyr environments into one set of easy to use commands. It currently supports the following commands:
|
The NeoECU tooling harmonizes the STM32 and Zephyr environments into one set of easy to use commands. It currently supports the following commands:
|
||||||
|
|
||||||
|
::: {.callout-important}
|
||||||
|
For complete, up-to-date documentation, please refer to the official git repo:
|
||||||
|
[https://git.h3cx.dev/Exergie/NeoECU-Tooling](https://git.h3cx.dev/Exergie/NeoECU-Tooling)
|
||||||
|
:::
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
neoecu envcheck
|
neoecu envcheck
|
||||||
neoecu init
|
neoecu init
|
||||||
@@ -365,28 +374,35 @@ The environment checker is a simple tool that checks that all the required tools
|
|||||||
The init command installs all the required python dependencies for west and initializes the cmake build environment for the STM32 side of the project.
|
The init command installs all the required python dependencies for west and initializes the cmake build environment for the STM32 side of the project.
|
||||||
|
|
||||||
## build
|
## build
|
||||||
The build command builds both sides of the project, STM32 and Zephyr. It defaults to release mode when run without arguments.
|
The build command builds both sides of the project (if configured), STM32 and Zephyr. It defaults to release mode and both cores when run without arguments.
|
||||||
|
|
||||||
Multiple arguments can be passed as follows:
|
Multiple arguments can be passed as follows:
|
||||||
```bash
|
```bash
|
||||||
--release
|
--release
|
||||||
#or
|
|
||||||
--debug
|
--debug
|
||||||
```
|
|
||||||
```bash
|
|
||||||
--clean
|
--clean
|
||||||
|
--CM7
|
||||||
|
--CM4
|
||||||
```
|
```
|
||||||
For example to build clean in debug mode:
|
For example to build clean in debug mode:
|
||||||
```bash
|
```bash
|
||||||
neoecu build --debug --clean
|
neoecu build --debug --clean
|
||||||
```
|
```
|
||||||
## flash
|
## flash
|
||||||
The flash command will flash the built binaries onto a board connected over JLink. It currently doesn't support per core flashing to it will flash both binaries at once.
|
The flash command will flash the built binaries onto a board connected over JLink. Single core flashing is done using the same arguments as build:
|
||||||
|
```bash
|
||||||
|
--CM7
|
||||||
|
--CM4
|
||||||
|
```
|
||||||
|
If no arguments are provided it defaults to flashing whatever is configured in `neoecu.toml`
|
||||||
|
|
||||||
## clean
|
## clean
|
||||||
The clean command cleans up all build directories in the project
|
The clean command cleans up all build directories in the project
|
||||||
|
|
||||||
|
|
||||||
|
```{=typst}
|
||||||
#pagebreak()
|
#pagebreak()
|
||||||
|
```
|
||||||
|
|
||||||
# Updates
|
# Updates
|
||||||
## Version 0.2.0
|
## Version 0.2.0
|
||||||
@@ -398,3 +414,6 @@ Fixed errors:
|
|||||||
- Incoherent instructions in export line for Zephyr SDK with x.x.x not appearing
|
- Incoherent instructions in export line for Zephyr SDK with x.x.x not appearing
|
||||||
- Incorrect mkdir command to create the `/opt/SEGGER/Jlink` directory, updated with -p flag
|
- Incorrect mkdir command to create the `/opt/SEGGER/Jlink` directory, updated with -p flag
|
||||||
- Incorrect command for extracting JLink tarball, updated target to correct directory
|
- Incorrect command for extracting JLink tarball, updated target to correct directory
|
||||||
|
|
||||||
|
## Version 0.2.2
|
||||||
|
Updated neoecu documentation to match neoeco v2.1.0
|
||||||
|
|||||||
6016
recovery.pdf
Normal file
6016
recovery.pdf
Normal file
File diff suppressed because one or more lines are too long
76
recovery.qmd
Normal file
76
recovery.qmd
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
---
|
||||||
|
title: "Arduino Giga Recovery Guide"
|
||||||
|
author:
|
||||||
|
- name: Hector van der Aa
|
||||||
|
email: hector@h3cx.dev
|
||||||
|
affiliation: Version 0.1.0
|
||||||
|
date: today
|
||||||
|
date-format: long
|
||||||
|
format:
|
||||||
|
typst:
|
||||||
|
mainfont: Inter
|
||||||
|
codefont: "JetBrains Mono"
|
||||||
|
papersize: a4
|
||||||
|
margin:
|
||||||
|
x: 2cm
|
||||||
|
y: 2cm
|
||||||
|
toc: true
|
||||||
|
---
|
||||||
|
```{=typst}
|
||||||
|
#set page(
|
||||||
|
header: align(right)[
|
||||||
|
Version 0.1.0
|
||||||
|
],
|
||||||
|
numbering: "1",
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
```{=typst}
|
||||||
|
#pagebreak()
|
||||||
|
```
|
||||||
|
|
||||||
|
# Background
|
||||||
|
|
||||||
|
This document outlines the procedure to recover a bricked Arduino Giga R1 board.
|
||||||
|
|
||||||
|
::: {.callout-important}
|
||||||
|
This guide does **NOT** return the Arduino Giga to its factory state *(ie the ability to flash via USB with the Arduino IDE)*. However it can be applicable as a first step to a factory restore to Arduino defaults.
|
||||||
|
:::
|
||||||
|
|
||||||
|
After having does a few tests with code generated by STM32CubeMX, I once found one of my Arduinos in a seemingly dead state, no signs of life other than the power LED and a daunting error when trying to flash: `Error: Failed to initialize DAP`. After many hours of trying things, I finally managed to figure out how to recover the mcu when it has been flashed with firmware that rendered it lifeless.
|
||||||
|
|
||||||
|
::: {.callout-note}
|
||||||
|
Once the board is recovered, **CHECK** your RCC configuration in STM32CubeMX, it is likely a power configuration issue where RCC tries to power from an external SMPS when it should be set to LDO_INTERNAL
|
||||||
|
:::
|
||||||
|
|
||||||
|
# Recovery
|
||||||
|
## Prerequisites
|
||||||
|
In order to recover the board, you will need the following:
|
||||||
|
|
||||||
|
- STM32CubeProgrammer
|
||||||
|
- A USB-C cable
|
||||||
|
|
||||||
|
## Process
|
||||||
|
|
||||||
|
{width=90%}
|
||||||
|
|
||||||
|
Open up STM32CubeProgrammer and set the connection mode to USB
|
||||||
|
|
||||||
|
{width=80%}
|
||||||
|
|
||||||
|
Then while holding down the `BOOT` button on the Arduino Giga, plug it in. Keep holding the button down for about 5 seconds then release.
|
||||||
|
|
||||||
|
{width=40%}
|
||||||
|
|
||||||
|
Then (1) click the refresh button in STM32CubeProgrammer, you should see a USB device appear, if it doesnt, unplug your board and try the previous step again.
|
||||||
|
|
||||||
|
Once the device is recognized, (2) click on connect to establish a connection to the board.
|
||||||
|
|
||||||
|
{width=90%}
|
||||||
|
|
||||||
|
You can now proceed to a chip erase:
|
||||||
|
1. Open the "Erasing and Programming" window
|
||||||
|
2. Click the "Full chip erase" button, acknowledge any warnings etc
|
||||||
|
3. Once the chip erase is complete, click disconnect
|
||||||
|
|
||||||
|
**Congrats**, you have successfully unbricked your board, you should now be able to connect to it via JLink. Now good luck finding the config fluke that bricked it.
|
||||||
Reference in New Issue
Block a user