Skip to content
Permalink
Browse files

Shell: Introduce shell_hexdump

This introduces shell_hexdump API which can be used to print an array
such as a network buffer.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
  • Loading branch information...
Vudentz authored and nashif committed Mar 19, 2019
1 parent 3ad96bf commit 65e350e6af3a8caebf22ec1b7630c0a54dff2e07
Showing with 31 additions and 0 deletions.
  1. +9 −0 include/shell/shell.h
  2. +22 −0 subsys/shell/shell.c
@@ -624,6 +624,15 @@ int shell_stop(const struct shell *shell);
void shell_fprintf(const struct shell *shell, enum shell_vt100_color color,
const char *fmt, ...);

/**
* @brief Print data in hexadecimal format.
*
* @param[in] shell Pointer to the shell instance.
* @param[in] data Pointer to data.
* @param[in] len Length of data.
*/
void shell_hexdump(const struct shell *shell, const u8_t *data, size_t len);

/**
* @brief Print info message to the shell.
*
@@ -1355,6 +1355,28 @@ void shell_fprintf(const struct shell *shell, enum shell_vt100_color color,
k_mutex_unlock(&shell->ctx->wr_mtx);
}

void shell_hexdump(const struct shell *shell, const u8_t *data, size_t len)
{
int n = 0;

while (len--) {
if (n % 16 == 0) {
shell_fprintf(shell, SHELL_NORMAL, "%08X: ", n);
}

shell_fprintf(shell, SHELL_NORMAL, "%02X ", *data++);

n++;
if (n % 16 == 0) {
shell_print(shell, "");
}
}

if (n % 16) {
shell_print(shell, "");
}
}

int shell_prompt_change(const struct shell *shell, const char *prompt)
{
__ASSERT_NO_MSG(shell);

0 comments on commit 65e350e

Please sign in to comment.
You can’t perform that action at this time.