diff options
| author | ruki <[email protected]> | 2025-12-07 11:51:27 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2025-12-07 17:15:59 +0800 |
| commit | 582aeb5720c2a75b7dd231c68403976db8123c4a (patch) | |
| tree | 23121c9f27668017a5ecb6f61a97af5d47ea2797 | |
| parent | 1ef6dddad4c6a3a2e3b3b79667e7f4568f7cfda0 (diff) | |
use dexdump to dump data
| -rw-r--r-- | tests/projects/other/bin2obj/src/main.c | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/tests/projects/other/bin2obj/src/main.c b/tests/projects/other/bin2obj/src/main.c index 78ac52f73..196247654 100644 --- a/tests/projects/other/bin2obj/src/main.c +++ b/tests/projects/other/bin2obj/src/main.c @@ -1,5 +1,6 @@ #include <stdio.h> #include <stdint.h> +#include <ctype.h> extern const uint8_t _binary_data_bin_start[]; extern const uint8_t _binary_data_bin_end[]; @@ -7,11 +8,43 @@ extern const uint8_t _binary_data_bin_end[]; extern const uint8_t _binary_image_png_start[]; extern const uint8_t _binary_image_png_end[]; +static void hexdump(const char* name, const uint8_t* data, uint32_t size) { + printf("%s: size: %u bytes\n", name, (unsigned int)size); + if (size == 0) { + return; + } + for (uint32_t offset = 0; offset < size; offset += 16) { + // print offset + printf("%08x ", (unsigned int)offset); + + // print hex bytes (8 bytes, space, 8 bytes) + for (uint32_t i = 0; i < 16; i++) { + if (offset + i < size) { + printf("%02x ", data[offset + i]); + } else { + printf(" "); + } + if (i == 7) { + printf(" "); + } + } + + // print ASCII representation + printf(" |"); + for (uint32_t i = 0; i < 16 && offset + i < size; i++) { + uint8_t c = data[offset + i]; + printf("%c", isprint(c) ? c : '.'); + } + printf("|\n"); + } +} + int main(int argc, char** argv) { const uint32_t _binary_data_bin_size = (uint32_t)(_binary_data_bin_end - _binary_data_bin_start); const uint32_t _binary_image_png_size = (uint32_t)(_binary_image_png_end - _binary_image_png_start); - printf("data.bin: %s, size: %u\n", (const char*)_binary_data_bin_start, (unsigned int)_binary_data_bin_size); - printf("image.png: %s, size: %u\n", (const char*)_binary_image_png_start, (unsigned int)_binary_image_png_size); + hexdump("data.bin", _binary_data_bin_start, _binary_data_bin_size); + printf("\n"); + hexdump("image.png", _binary_image_png_start, _binary_image_png_size); return 0; } |
