37 lines
1.2 KiB
Markdown
37 lines
1.2 KiB
Markdown
# Refleks Lite Bootloader and DFU Guide
|
|
|
|
## Flash layout
|
|
|
|
| Region | Start address | Size | USB identity |
|
|
| --- | ---: | ---: | --- |
|
|
| Bootloader / DFU | `0x08000000` | 24 KB | `1209:E667` |
|
|
| App1 / XInput | `0x08006000` | 52 KB | `1209:E668` |
|
|
| App2 / DInput | `0x08013000` | 52 KB | `1209:E669` |
|
|
|
|
For initial programming, flash `build/Release/arcadestick_full.hex` with an
|
|
ST-Link. This file contains the bootloader and both applications.
|
|
|
|
## Boot selection
|
|
|
|
- Hold `START` during reset to keep the device in DFU mode.
|
|
- When `PA4` is LOW, the bootloader starts XInput App1.
|
|
- When `PA5` is LOW, the bootloader starts DInput App2.
|
|
- If the selection is invalid, or the selected application's vector table is
|
|
invalid, the bootloader remains in DFU mode.
|
|
|
|
## Updating over USB
|
|
|
|
The bootloader implements standard USB DFU 1.1. It does not use DfuSe address
|
|
commands; the alternate interface number selects the destination slot.
|
|
|
|
```powershell
|
|
# XInput App1
|
|
dfu-util -d 1209:e667 -a 0 -D build/Release/arcadestick_xinput.bin
|
|
|
|
# DInput App2
|
|
dfu-util -d 1209:e667 -a 1 -D build/Release/arcadestick.bin
|
|
```
|
|
|
|
On Windows, the `1209:E667` device must use the WinUSB driver. `dfu-util` is
|
|
not currently installed in this computer's `PATH`.
|