printf sprintf 格式化数据,并按每行N个数字的格式打印所有的数据

参考

https://www.cnblogs.com/52php/p/5724390.html 

嵌入式操作系统---打印函数(printf/sprintf)的实现 https://blog.csdn.net/u010961173/article/details/79769747

int firmware_printf(const struct firmware *pfw, unsigned long fw_addr)
{    
    int i=0, n=0, size=0, col=16;
    const u8 *pdata;
    char str[1024];
    char a_str[64];
    pdata = pfw->data;
    size = pfw->size;
    memset(str, '\0', sizeof(a_str));
    memset(str, '\0', sizeof(str));
    while(n<size){
        col = ((size-n)>col)?col:(size-n);
        for(i=0;i<col;i++){
            sprintf(a_str, "%02x ", *(pdata+i));
            strcat(str, a_str);
        }
        pr_info("%s \n", str);
        memset(str, '\0', sizeof(str));
        /*
        pr_info("*%02x %02x %02x %02x %02x %02x %02x %02x \n",
            *pdata,     *(pdata+1), *(pdata+2), *(pdata+3),
            *(pdata+4), *(pdata+5), *(pdata+6), *(pdata+7));
        */
        pdata += col;        
        n += col;
    }
    
    return 0;
}

结果如下:

[   38.985631@0] 74 61 72 74 00 68 69 66 69 34 64 73 70 5f 67 65  
[   38.985637@0] 74 5f 69 6e 66 6f 00 5f 5f 6c 69 62 63 5f 73 74  
[   38.985642@0] 61 72 74 5f 6d 61 69 6e 40 40 47 4c 49 42 43 5f  
[   38.985647@0] 32 2e 34 00 73 74 72 65 72 72 6f 72 40 40 47 4c  
[   38.985660@0] 49 42 43 5f 32 2e 34 00 5f 5f 67 6d 6f 6e 5f 73  
[   38.985665@0] 74 61 72 74 5f 5f 00 6f 70 65 6e 40 40 47 4c 49  
[   38.985670@0] 42 43 5f 32 2e 34 00 5f 5f 64 73 6f 5f 68 61 6e  
[   38.985676@0] 64 6c 65 00 5f 49 4f 5f 73 74 64 69 6e 5f 75 73  
[   38.985681@0] 65 64 00 68 69 66 69 34 64 73 70 5f 6c 6f 61 64  
[   38.985686@0] 00 5f 5f 6c 69 62 63 5f 63 73 75 5f 69 6e 69 74  
[   38.985691@0] 00 5f 5f 65 72 72 6e 6f 5f 6c 6f 63 61 74 69 6f  
[   38.985696@0] 6e 40 40 47 4c 49 42 43 5f 32 2e 34 00 5f 65 6e  
[   38.985709@0] 64 00 5f 73 74 61 72 74 00 5f 5f 65 6e 64 5f 5f  
[   38.985714@0] 00 5f 5f 62 73 73 5f 73 74 61 72 74 00 6d 61 69  
[   38.985720@0] 6e 00 5f 4a 76 5f 52 65 67 69 73 74 65 72 43 6c  
[   38.985725@0] 61 73 73 65 73 00 5f 5f 54 4d 43 5f 45 4e 44 5f  
[   38.985730@0] 5f 00 5f 49 54 4d 5f 72 65 67 69 73 74 65 72 54  
[   38.985735@0] 4d 43 6c 6f 6e 65 54 61 62 6c 65 00 61 62 6f 72  
[   38.985740@0] 74 40 40 47 4c 49 42 43 5f 32 2e 34 00 5f 69 6e  
[   38.985745@0] 69 74 00 63 6c 6f 73 65 40 40 47 4c 49 42 43 5f  
[   38.985747@0] 32 2e 34 00  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值