我们使用SWMS做图像旋转,SDK为IPNCRDK3.8,基于FULL FEATURE的USECASE修改, 流程如下…………->dup(disp)—->swms—->dvo2, 其中swms参数如下:
/*SWMS LINK PARAMS*/
swMsPrm.numSwMsInst = 1;
swMsPrm.swMsInstId[0] = SYSTEM_SW_MS_SC_INST_VIP1_SC;
swMsPrm.outDataFormat = SYSTEM_DF_YUV422I_YUYV;
swMsPrm.inQueParams.prevLinkId = dupId[DIS_DUP_IDX];
swMsPrm.inQueParams.prevLinkQueId = 2;
swMsPrm.outQueParams.nextLink = gVdisModuleContext.displayId[VDIS_DEV_DVO2];
swMsPrm.maxInputQueLen = 4;
swMsPrm.maxOutRes = VSYS_STD_CUSTOM;
swMsPrm.numOutBuf = 0;
swMsPrm.lineSkipMode = FALSE; // NOT USED
swMsPrm.enableLayoutGridDraw = FALSE;//gVdisModuleContext.vdisConfig.enableLayoutGridDraw;
swMsPrm.enableProcessTieWithDisplay = FALSE;
swMsPrm.rotateMask = UTILS_TILER_ORI_XY_SWAP;
MultiCh_swMsGetDefaultLayoutPrm(VDIS_DEV_DVO2, &swMsPrm, TRUE);
如果我们将swMsPrm.numOutBuf 设置为2,则最终swms输出帧率只有9fps左右,系统不会挂死。
如果我们将swMsPrm.numOutBuf 设置为4以上(或0),则最终swms输出帧率可以达到30ps左右,但是系统会不定时挂死, 现象为输出黑屏,A8侧串口不响应,挂死之前没有任何异常信息打印。
Da mi:
请ti官方的大神指点下谢谢
Chris Meng:
回复 Da mi:
你好,
建议参考DVR RDK4.1和下面讨论提供的patch。
e2e.ti.com/…/310774
Da mi:
回复 Chris Meng:
Chris Meng 你好,
我们就是参考的这个,目前已经 实现了旋转,但任然有问题,就是上面描述的 请帮忙分析谢谢;
Chris Meng:
回复 Chris Meng:
你好,
你是否有把DVR RDK4.01的HDVPSS驱动/SWMS link等软件更新到现有的IPNC软件?
使用tiler来做旋转,会加大DDR的访问量,如果较小旋转输出正常,而较多异常,我会比较怀疑是DDR吞吐的问题。
Da mi:
回复 Chris Meng:
你好
如果是DDR吞吐问题的话,什么情况下会导致崩溃时A8调试串口都没有任何错误打印信息啊;
Chris Meng:
回复 Da mi:
你好,
请问你们是否有做过DDR的SW leveling?
Da mi:
回复 Chris Meng:
你好:
我们板上没留JTAG接口,所以没 法做。、
但是我们在A8侧做了内存压力测试,连续测试了多个小时,没有出问题。
A8侧吞吐率是600mhz, 222MB/s ,970mhz, 324MB/s
Chris Meng:
回复 Da mi:
你好,
DDR稳定性问题靠单纯的内存访问测试也是很难测出来的。
或者你可以降低DDR的频率(修改uboot),看死机概率是否有降低?
Da mi:
回复 Chris Meng:
请问不用JTAG可以实现SW leveling吗?我看AM335X在MLO里面可以做。
或者有没什么算法能计算出来理论值?
Chris Meng:
回复 Da mi:
你好,
抱歉,目前DM81xx系列产品只能通过JTAG/CCS来做SW leveling。