我在8168的dvr rdk开发包中osd算法部分代码中打印数据用vps_printf(); 打印char*addr;指针指向的数据,打印出来应该是一个字节啊,也就是8bit的啊,但为什么,一会儿出现8位的正常数据,一会儿出现ffffffa3;这样的32位的数据啊,怎么会多出来3个ff的啊?有同学遇到过么?谢谢
albert albert:
是不是 dsp上的算法,如osd算法,如果要跟踪算法什么时候调用的,应该调用vps_printf(),而不是printf()啊?我用printf()跟踪,在终端并没有输出我预先设置打印的东西。
Robin Edson:
回复 albert albert:
你用printf能编译通过?
DSP和M3侧打印都是用Vps_printf或者Vps_rprintf。
Robin Edson:
你改过remote_debug的程序?如果没改,应该不会出现这种情况。如果改了,请参考具体程序。
hui ma:
回复 Robin Edson:
没有改vps_printf();函数啊 很纳闷儿为什么会打印这么奇怪
Robin Edson:
回复 hui ma:
注意下回帖的内容,我说的是有没有改remotedebug部分的内容,也就是vps_printf的具体实现;在具体点就是是否有修改remote_debug_client.c及remote_debug_server.c
hui ma:
回复 Robin Edson:
哦 不好意思 没看清楚 我没改vps_printf的具体实现啊 只是改osd算法的代码了
Robin Edson:
回复 hui ma:
把你打印部分的代码贴出来看看。
Vps_printf("char * %s\n",(char *) addr);
hui ma:
回复 Robin Edson:
for(i=0;i<20*20;i++)
{
Vps_printf("—-i %x——img->imageData addr %x—–data %x—-\n " ,i , img->imageData+i ,*(img->imageData+i ));
}
其中,UInit32 i; IplImage *img; IplImage这个结构体的一个元素为char*imageData;
Robin Edson:
回复 hui ma:
。。。。地址里面的数据你的打印格式是%x,当然就打印错了。请参考printf的打印格式部分知识。自己去学习下,记得深点。