c6678
CCS Version: 5.3.0.00090
mcsdk_2_01_02_06
bios_6_33_06_50
image processing这个demo里做算法移植,处理第一张图片时运行一切正常,当我return to main page,换一张图片处理时,结果页面里的表格中的信息确实是第二张图片的信息,并且我在mcip.webpage.c中生成页面前写了两个bmp文件的代码(如下),写完后我看.bmp也的确是第二张图片(原始图和处理后的图都没问题),但奇怪的是页面中的input image和output image却总是显示第一张图片!被折磨很久找不到原因
{
FILE *fp = fopen("in.bmp", "wb");
fwrite(input_image.data, gRxBuffer_size, 1, fp);
fclose(fp);
}
{
FILE *fp = fopen("out.bmp", "wb");
fwrite(output_image.data, gRxBuffer_size, 1, fp);
fclose(fp);
}
efs_createfile("input_image.bmp", input_file_length, (UINT8 *) input_image.data);
efs_createfile("output_image.bmp", output_file_length, (UINT8 *) output_image.data);
求啊!
ruijie yang:
不要沉啊。。。
有什么原因可能导致这种结果呢?有任何一点点想法或建议就请帮帮忙吧!
Andy Yin1:
您好,
请先在CCS下调试看看输入图像数据、处理的每一步结果数据是否都正确,最后看看输出到显示的buffer中存储的结果是否正确,如果在ccs下看到的输入输出数据都正确,显示有问题的话,查查是否cache的原因导致的,可以尝试将显示的数据buffer放到LL2或者在显示之前刷一下cache。
ruijie yang:
回复 Andy Yin1:
谢谢Andy!
我在处理过程中很多地方插了写文件的操作,写出来的bmp都是正确的输入输出图片,说明处理过程是对的。
在image processing demo里,各个从核将处理过的数据传回给主核之前有一个对处理数据cache_wb的操作,这不刷了cache了么?我又在最终页面输出结果前加了下面两句,不知就下面这样写对不对? 但跑出来页面的显示依旧是错的。
Cache_wb(input_image.data, input_image.length, Cache_Type_ALL, FALSE); Cache_wb(output_image.data, output_image.length, Cache_Type_ALL, FALSE);
我之前想会不会是浏览器的问题,就换了用IE,第一次用IE时结果居然对了,我还以为真是浏览器的问题,但是我又运行了几次,就又没对过了。。。。
Andy Yin1:
回复 ruijie yang:
您好,
如果确定输出显示的buffer中存储的数据是更新后的数据,那就有可能是IE输出显示的问题,这方面我不太清楚。建议屏蔽前面的处理,直接在输出显示buffer填充一副新的图像看看能不能显示,如果可以的话就说明还是前面的处理数据没有更新好,否则说明是显示这一段有问题。
ruijie yang:
回复 Ping Li3:
为什么要刷一下网页才行呢? 什么原因呢?
wj xz:
回复 ruijie yang:
请问您后面发现是什么原因了么