1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-19 23:22:16 +03:00

Hexdump fix&update (#7831)

* hexdump() must be "C"; add ascii data in dump
* remove previous version
This commit is contained in:
david gauchard 2021-01-22 23:04:22 +01:00 committed by GitHub
parent 11a2fb3872
commit b3fe0aab19
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 43 additions and 25 deletions

View File

@ -1,37 +1,53 @@
/* /*
debug.cpp - debug helper functions debug.cpp - debug helper functions
Copyright (c) 2015 Markus Sattler. All rights reserved. Copyright (c) 2015 Markus Sattler. All rights reserved.
This file is part of the esp8266 core for Arduino environment. This file is part of the esp8266 core for Arduino environment.
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version. version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details. Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include "Arduino.h" #include "Arduino.h"
#include "debug.h" #include "debug.h"
#include "osapi.h" #include "osapi.h"
void ICACHE_RAM_ATTR hexdump(const void *mem, uint32_t len, uint8_t cols) { IRAM_ATTR
const uint8_t* src = (const uint8_t*) mem; void hexdump(const void *mem, uint32_t len, uint8_t cols)
os_printf("\n[HEXDUMP] Address: 0x%08X len: 0x%X (%d)", (ptrdiff_t)src, len, len); {
for(uint32_t i = 0; i < len; i++) { const char* src = (const char*)mem;
if(i % cols == 0) { os_printf("\n[HEXDUMP] Address: %p len: 0x%X (%d)", src, len, len);
os_printf("\n[0x%08X] 0x%08X: ", (ptrdiff_t)src, i); while (len > 0)
yield(); {
uint32_t linesize = cols > len ? len : cols;
os_printf("\n[%p] 0x%04x: ", src, src - (const char*)mem);
for (uint32_t i = 0; i < linesize; i++)
{
os_printf("%02x ", *(src + i));
} }
os_printf("%02X ", *src); os_printf(" ");
src++; for (uint32_t i = linesize; i < cols; i++)
{
os_printf(" ");
}
for (uint32_t i = 0; i < linesize; i++)
{
unsigned char c = *(src + i);
os_putc(isprint(c) ? c : '.');
}
src += linesize;
len -= linesize;
yield();
} }
os_printf("\n"); os_printf("\n");
} }

View File

@ -13,7 +13,7 @@
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
void hexdump(const void *mem, uint32_t len, uint8_t cols = 16); extern "C" void hexdump(const void *mem, uint32_t len, uint8_t cols = 16);
#else #else
void hexdump(const void *mem, uint32_t len, uint8_t cols); void hexdump(const void *mem, uint32_t len, uint8_t cols);
#endif #endif

View File

@ -103,6 +103,7 @@ extern "C" {
int ets_printf (const char* fmt, ...) __attribute__ ((format (printf, 1, 2))); int ets_printf (const char* fmt, ...) __attribute__ ((format (printf, 1, 2)));
#define os_printf_plus printf #define os_printf_plus printf
#define ets_vsnprintf vsnprintf #define ets_vsnprintf vsnprintf
inline void ets_putc (char c) { putchar(c); }
int mockverbose (const char* fmt, ...) __attribute__ ((format (printf, 1, 2))); int mockverbose (const char* fmt, ...) __attribute__ ((format (printf, 1, 2)));

View File

@ -16,6 +16,7 @@ libraries/Wire
libraries/lwIP* libraries/lwIP*
cores/esp8266/Lwip* cores/esp8266/Lwip*
cores/esp8266/core_esp8266_si2c.cpp cores/esp8266/core_esp8266_si2c.cpp
cores/esp8266/debug*
libraries/Netdump libraries/Netdump
" "