summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2025-12-07 11:51:27 +0800
committerruki <[email protected]>2025-12-07 17:15:59 +0800
commit582aeb5720c2a75b7dd231c68403976db8123c4a (patch)
tree23121c9f27668017a5ecb6f61a97af5d47ea2797
parent1ef6dddad4c6a3a2e3b3b79667e7f4568f7cfda0 (diff)
use dexdump to dump data
-rw-r--r--tests/projects/other/bin2obj/src/main.c37
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;
}