1 /*
2 * @ : Copyright (c) 2021 Phytium Information Technology, Inc.
3 *
4 * SPDX-License-Identifier: Apache-2.0.
5 *
6 * @Date: 2021-04-25 16:44:23
7 * @LastEditTime: 2021-04-25 16:44:23
8 * @Description: Description of file
9 * @Modify History:
10 * * * Ver Who Date Changes
11 * * ----- ------ -------- --------------------------------------
12 */
13 #include "ft_debug.h"
14
15 #define __is_print(ch) ((unsigned int)((ch) - ' ') < 127u - ' ')
Ft_DumpHexByte(const u8 * ptr,ft_base_t buflen)16 void Ft_DumpHexByte(const u8 *ptr, ft_base_t buflen)
17 {
18 unsigned char *buf = (unsigned char *)ptr;
19 int i, j;
20
21 for (i = 0; i < buflen; i += 16)
22 {
23 Ft_printf("0x%08X: ", ptr + i);
24
25 for (j = 0; j < 16; j++)
26 if (i + j < buflen)
27 Ft_printf("%02X ", buf[i + j]);
28 else
29 Ft_printf(" ");
30 Ft_printf(" ");
31
32 for (j = 0; j < 16; j++)
33 if (i + j < buflen)
34 Ft_printf("%c", __is_print(buf[i + j]) ? buf[i + j] : '.');
35 Ft_printf("\r\n");
36 }
37 }
38
Ft_DumpHexWord(const u32 * ptr,ft_base_t buflen)39 void Ft_DumpHexWord(const u32 *ptr, ft_base_t buflen)
40 {
41 u32 *buf = (u32 *)ptr;
42 int i, j;
43 buflen = buflen / 4;
44 for (i = 0; i < buflen; i += 4)
45 {
46 Ft_printf("0x%08X: ", ptr + i);
47
48 for (j = 0; j < 4; j++)
49 {
50 if (i + j < buflen)
51 {
52 Ft_printf("%08X ", buf[i + j]);
53 }
54 else
55 {
56 Ft_printf(" ");
57 }
58 }
59
60 Ft_printf(" ");
61
62 for (j = 0; j < 16; j++)
63 if (i + j < buflen)
64 Ft_printf("%c", __is_print(buf[i + j]) ? buf[i + j] : '.');
65 Ft_printf("\r\n");
66 }
67 }
68