参照开发板厂商例程时遇到的问题
例程的实现的功能是从本地读取一帧照片重复发送给ARM,经ARM-->DSP-->AppLink(用户自己创建的Link)的Chain将数据发送到AppLink对照片进行灰度化处理,最终ARM将灰度化的图片进行保存。
我的问题是不理解他保存图片的思路一下是保存图片的代码,这是他获取要写入文件数据块虚拟地址的函数:
Ptr Loopback_getFrameVirtAddr(VIDEO_FRAMEBUF_LIST_S *bufList,
Loopback_IpcFramesBufObj frameObj[],
UInt32 numFrames, VIDEO_FRAMEBUF_S *buf)
{
Ptr virt = NULL;
Int i;
for (i = 0; i < numFrames;i++)
{
if(frameObj[i].bufPhy == (UInt32)buf->phyAddr[0][0])
{
virt = frameObj[i].bufVirt;
break;
}
}
return virt;
}
程序中的frameObj[i]是推送到ARM端的原始帧,buf是通过getEmptyVideoFrames()从ARM端获取的空白帧。这里为什么是判断原始帧和从ARM端获取的空白帧的物理地址相等来获取写入到文件的数据的虚拟地址那?
因为是刚入手MCFW的小白,请路过大神如果能看懂我的描述的话,还望给出解答,谢谢!!!