target, flash: utility for riscv repeat_read command

Imported non-riscv part from
https://github.com/riscv-collab/riscv-openocd/pull/510
developed by Tim Newsome <tim@sifive.com>

Introduce target_handle_md_output() parameter include_address.
All callers set it true but riscv repeat_read command.

Change-Id: I67b5aad15a33ad149d4047998b22407cb60098fd
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: https://review.openocd.org/c/openocd/+/9127
Tested-by: jenkins
Reviewed-by: Evgeniy Naydanov <evgeniy.naydanov@syntacore.com>
This commit is contained in:
Tomas Vanek
2025-09-13 23:01:33 +02:00
parent f354d259ff
commit a0eac82708
5 changed files with 9 additions and 7 deletions

View File

@@ -3349,7 +3349,7 @@ COMMAND_HANDLER(handle_step_command)
void target_handle_md_output(struct command_invocation *cmd,
struct target *target, target_addr_t address, unsigned int size,
unsigned int count, const uint8_t *buffer)
unsigned int count, const uint8_t *buffer, bool include_address)
{
const unsigned int line_bytecnt = 32;
unsigned int line_modulo = line_bytecnt / size;
@@ -3378,7 +3378,7 @@ void target_handle_md_output(struct command_invocation *cmd,
}
for (unsigned int i = 0; i < count; i++) {
if (i % line_modulo == 0) {
if (include_address && i % line_modulo == 0) {
output_len += snprintf(output + output_len,
sizeof(output) - output_len,
TARGET_ADDR_FMT ": ",
@@ -3462,7 +3462,7 @@ COMMAND_HANDLER(handle_md_command)
struct target *target = get_current_target(CMD_CTX);
int retval = fn(target, address, size, count, buffer);
if (retval == ERROR_OK)
target_handle_md_output(CMD, target, address, size, count, buffer);
target_handle_md_output(CMD, target, address, size, count, buffer, true);
free(buffer);