diff options
author | fishsoupisgood <github@madingley.org> | 2020-09-09 11:53:37 +0100 |
---|---|---|
committer | fishsoupisgood <github@madingley.org> | 2020-09-09 11:53:37 +0100 |
commit | 9d87c925a9eaa4fc256be3173c14a20d1469472d (patch) | |
tree | 50d63f87a47a0eac3f5b8058850184bcd4e6ee95 /radiator-plc/stm32/app/hexdump.c | |
parent | dafd8cf2fdcdd637cc06f760d318cf8391b1a294 (diff) | |
download | heating-9d87c925a9eaa4fc256be3173c14a20d1469472d.tar.gz heating-9d87c925a9eaa4fc256be3173c14a20d1469472d.tar.bz2 heating-9d87c925a9eaa4fc256be3173c14a20d1469472d.zip |
everything, mostly, working
Diffstat (limited to 'radiator-plc/stm32/app/hexdump.c')
-rw-r--r-- | radiator-plc/stm32/app/hexdump.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/radiator-plc/stm32/app/hexdump.c b/radiator-plc/stm32/app/hexdump.c new file mode 100644 index 0000000..83f02ea --- /dev/null +++ b/radiator-plc/stm32/app/hexdump.c @@ -0,0 +1,57 @@ +#include "project.h" + +void +hexdump (void *_d, int len) +{ + uint8_t *d = (uint8_t *) _d; + int i, j, k; + int e; + + if (!d || len < 0) + return; + + e = len + 15; + e &= ~15; + + for (i = 0; i < e; i += 16) { + usart1_drain(); + printf (" %05x:", i); + + for (j = 0; j < 16; ++j) { + k = i + j; + + if (k < len) + printf (" %02x", d[k]); + else + printf (" "); + + if (j == 7) + printf (" "); + } + + printf (" "); + + for (j = 0; j < 16; ++j) { + k = i + j; + + if (k < len) { + uint8_t c = d[k]; + + if (c < 33) + c = '.'; + + if (c > 126) + c = '.'; + + printf ("%c", c); + } + + if (j == 7) + printf (" "); + } + + printf ("\r\n"); + } + + usart1_drain(); +} |