]>
cloudbase.mooo.com Git - z180-stamp.git/blob - avr/print-utils.c
5 #include "print-utils.h"
7 void print_blanks(uint_fast8_t count
)
14 void eeprom_read_buf(uint8_t *buf
, uint32_t addr
, uint8_t count
)
16 eeprom_read_block((void *) buf
, (const void *) (size_t) addr
, count
);
19 void ram_read_buf(uint8_t *buf
, uint32_t addr
, uint8_t count
)
22 *buf
++ = *(uint8_t *) (size_t) addr
++;
25 int dump_mem(uint32_t address
, uint32_t offset
, uint32_t len
,
26 void (*readfkt
)(uint8_t *, uint32_t, uint8_t), char *title
)
31 uint8_t pre
= offset
% 16;
32 offset
= offset
& ~0x0f;
36 if (title
&& *title
) {
37 printf_P(PSTR("%s\n"),title
);
44 readfkt(buf
, address
, llen
- pre
);
46 printf_P(PSTR("%s%.5lx:"),indent
, offset
);
47 for (i
= 0; i
< llen
; i
++) {
51 printf_P(PSTR(".. "));
53 printf_P(PSTR("%.2x "), buf
[i
-pre
]);
55 /* fill line with whitespace for nice ASCII print */
56 print_blanks(3 * (16u - i
) + (16u-i
)/8 + 1 + pre
);
57 /* Print data in ASCII characters */
58 for (i
= pre
; i
< llen
; i
++)
59 printf_P(PSTR("%c"), isprint(buf
[i
-pre
]) ? buf
[i
-pre
] : '.');
62 address
+= llen
- pre
;
73 void dump_eep(uint32_t addr
, unsigned int len
, char *title
)
75 dump_mem(addr
, addr
, len
, eeprom_read_buf
, title
);
78 void dump_ram(uint8_t *addr
, size_t offset
, unsigned int len
, char *title
)
80 dump_mem((uint32_t) (size_t) addr
, offset
, len
, ram_read_buf
, title
);