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