在使用打印调试USB驱动的时候,犯了如下的错误:
for(i=0;i<512;i++)
printf("0x%02x ",*leadbuf++);
这样打印的时候,改变了leadbuf这个指针的值,也就是调试操作改变了程序原来的运行轨迹,这样是绝对不允许的。
改成如下打印方式就好了:
int raw_sec_size;
for (raw_sec_size=0;raw_sec_size<512;raw_sec_size++){
if(0==(raw_sec_size+1)%16)
printf("0x%02x\n",*(leadbuf+raw_sec_size));
else
printf("0x%02x ",*(leadbuf+raw_sec_size));
}
这样做有两个好处 1.打印调试没有改变原来的程序。2.打印出来的数组按16个一行排列,便于查看。