kernel hexdump分析 (2.0)

有的时候print_hex_dump_bytes循环打印很多信息的时候(大于1K)
用UART串口打印的信息总是会有丢失,估计是printk缓冲区的问题把,具体原因不是太清楚
于是自己写了个比较笨的dump函数,问题得到解决:

//每次打印128个字节(当然你也可以打印更多),只调用一次printk ,
// 而 print_hex_dump_bytes 则 最多32个字节 就调用一次printk

static void  dumpBuf(void * buf)

{

   unsigned char * temp;

   

   temp=(char *)buf;



   int i=0;

      printk(KERN_ERR  "[%s] \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n \

%02x %02x %02x %02x %02x %02x %02x %02x \r\n",__func__,  \

	   	temp[i+0],temp[i+1],temp[i+2],temp[i+3],temp[i+4],temp[i+5],temp[i+6],temp[i+7], \

	   	temp[i+8],temp[i+9],temp[i+10],temp[i+11],temp[i+12],temp[i+13],temp[i+14],temp[i+15],\

	   	temp[i+16],temp[i+17],temp[i+18],temp[i+19],temp[i+20],temp[i+21],temp[i+22],temp[i+23],\

	   	temp[i+24],temp[i+25],temp[i+26],temp[i+27],temp[i+28],temp[i+29],temp[i+30],temp[i+31],\

	   	temp[i+32],temp[i+33],temp[i+34],temp[i+35],temp[i+36],temp[i+37],temp[i+38],temp[i+39],\

	   	temp[i+40],temp[i+41],temp[i+42],temp[i+43],temp[i+44],temp[i+45],temp[i+46],temp[i+47],\

	   	temp[i+48],temp[i+49],temp[i+50],temp[i+51],temp[i+52],temp[i+53],temp[i+54],temp[i+55],\

	   	temp[i+56],temp[i+57],temp[i+58],temp[i+59],temp[i+60],temp[i+61],temp[i+62],temp[i+63],\

	   	temp[i+64],temp[i+65],temp[i+66],temp[i+67],temp[i+68],temp[i+69],temp[i+70],temp[i+71],\

	   	temp[i+72],temp[i+73],temp[i+74],temp[i+75],temp[i+76],temp[i+77],temp[i+78],temp[i+79],\

	   	temp[i+80],temp[i+81],temp[i+82],temp[i+83],temp[i+84],temp[i+85],temp[i+86],temp[i+87],\

	   	temp[i+88],temp[i+89],temp[i+90],temp[i+91],temp[i+92],temp[i+93],temp[i+94],temp[i+95],\

	   	temp[i+96],temp[i+97],temp[i+98],temp[i+99],temp[i+100],temp[i+101],temp[i+102],temp[i+103],\

	   	temp[i+104],temp[i+105],temp[i+106],temp[i+107],temp[i+108],temp[i+109],temp[i+110],temp[i+111],\

	   	temp[i+112],temp[i+113],temp[i+114],temp[i+115],temp[i+116],temp[i+117],temp[i+118],temp[i+119],\

	   	temp[i+120],temp[i+121],temp[i+122],temp[i+123],temp[i+124],temp[i+125],temp[i+126],temp[i+127]);

   //}


 

 

你可能感兴趣的:(kernel)