Some boards have a configuration of the flash bank with an address of 0
when it actually starts as 0x08000000 but openocd relies on probing
the hardware at runtime.
This now allows to first probe the board to get the actual value.
If probing fail for any reason, return the value from the configuration.
This can happen when the board is unreachable so at least give a valid
output instead of an error.
This will allow correct flash detection on for example the `stm32f3` and
`stm32l4` which have a configured address of 0.
4a6f93c961/tcl/target/stm32f3x.cfg (L64)4a6f93c961/tcl/target/stm32l4x.cfg (L51)
Get FLASH_FILE and ELFFILE from command line instead of environment variable.
The documentation was claiming ELFFILE was given as a command line argument
already, but is was not.
https://stackoverflow.com/a/24276470
In replacement strings used with the s command, assume that NO
control-character escape sequences are supported (ex '\n')
Replace with an escaped newline character. Current form works in 'bash'.
https://stackoverflow.com/a/24276470
Labels and branching commands (e.g., b) must be followed by an actual
newline or continuation via a separate -e option.
Add the rom base address to the flash address when flashing binaries.
This allows flashing binaries with the default openocd configuration.
It is an API change to IMAGE_OFFSET with binary files as it should now
only be an offset to the base address.
Force openocd type to '.bin' in case we want to flash hex/elf objects or
files not automatically recognized as bin.
This allows getting the ROM base address.
It may not be available in the build system directly so better extract it from
openocd. Also openocd is board specific and this address is cpu specific
so would have definition order issue in the build system.
When flashing with an IMAGE_OFFSET, it should also be passed to
verify_image. It is handling the base address in the image too.
This works with both elf files and binaries with the base address added.
Attempt to decouple board configuration from debugger interface
configuration by specifying the DEBUG_IFACE variable for the debug
hardware interface to use.
- Merge flash and flash-elf commands since they were identical except
for the file name of the image
- Split GDB command from DBG environment variable to allow more easily
configure front-ends for GDB via environment variables.
- Remove verbose tests of empty variables and replace by `: ${VAR:=default}`
- Remove passed command line arguments to sub-functions, they were
unused in the functions anyway.
- Remove TUI variable, use `export DBG_EXTRA_FLAGS=-tui` to get the same
result.