我这边使用的芯片是8127, 最近在运行程序中,从串口中打印了如下的日志信息:
[m3vpss ] ##################### REISZER OVERFLOW OCCURED: RESTARTING...############################
然后挂掉了,从字面意义上看貌似是resizer时出错了,不是每次都出现这个问题,百思不得其解,麻烦哪位能指导下,这个错误具体是什么意思的?什么情况下会出现的?
先谢谢了.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我这边使用的芯片是8127, 最近在运行程序中,从串口中打印了如下的日志信息:
[m3vpss ] ##################### REISZER OVERFLOW OCCURED: RESTARTING...############################
然后挂掉了,从字面意义上看貌似是resizer时出错了,不是每次都出现这个问题,百思不得其解,麻烦哪位能指导下,这个错误具体是什么意思的?什么情况下会出现的?
先谢谢了.
首先感谢你的回复,我看了相关的连接,也对比了我的代码,貌似对不上.
我在RDK中搜索了下,存在于iss_03_50_00_00/packages/ti/psp/iss/drivers/capture/src/iss_drv_captureApi.c文件中
iss_isif_linenum_handle()函数中,这个函数在drvIspCallback()回调函数中,当事件为MSP_ISS_DRV_ISIF_VD_ISR时会调用这个函数
在iss_isif_linenum_handle()中读取0x55050024地址信息,如果这个地址上的整型值第13位如果为12,则打印这个错误信息,
Int rsz_err = * (MSP_U32 *)(0x55050024);
if (rsz_err & 0xc0000)
{
Vps_printf("\r\n\t############ REISZER OVERFLOW OCCURED: RESTARTING... ###############\n\r");
isp_reset_trigger = 1;
}
我对这一块没有太多研究,能告诉我这个错误代表什么意思吗?具体是什么原因会引起这个错误呢?
急等中, 恳请解答,先谢谢了.
我这边也出现了这个问题,不过频率比较低,是否和处理能力有关系,另外restart为啥不能起作用
你好,
出现的原因一般都是系统峰值DDR‘吞吐过高,ISS拿不到DDR资源供resizer输出。
你能否参考IPNC 3.8的init.sh里面的配置,使用sys_pri提高ISS的优先级?
请避免在A8侧有大量DDR访问,如果有,请用EDMA替代。
非常感谢Chris Meng的回复,我尝试下哈。
另外,我这边测试还发现个这样的现象,长时间运行后(如8个小时后)数据链路突然卡死帧不正常流动了,我在rdk中加了一些日志打印,比如我在cameralink中增加了如下这样的计数:
Int32 queue_num_ = 8; // 原始帧队列长度为8
。。。
FVID2_dequeue(pObj->fvidHandleVipAll, &frameList, streamId, BIOS_NO_WAIT);
queue_num_ -= frameList.numFrames;
。。。
pObj->cameraQueuedFrameCount += pFrameList->numFrames;
FVID2_queue(pObj->fvidHandleVipAll,pFrameList, ISS_CAPT_STREAM_ID_ANY);
queue_num_ += pFrameList->numFrames;
。。。
正常运行时经打印输出,发现queue_num_一般在5以上徘徊,当最后卡死时,发现queue_num_逐渐变小,最后变成3或2或1
另外发现从cameralink的帧处理函数CameraLink_drvProcessData()中调用System_sendLinkCmd(pObj->createArgs.outQueParams[queId].nextLink, SYSTEM_CMD_NEW_DATA)发送
SYSTEM_CMD_NEW_DATA到下一个link,但下一个link的任务主函数中并未接收到SYSTEM_CMD_NEW_DATA消息,
请教下一般是什么原因导致这个链路卡死了呢?
hi chris!
我们现在的ddr跑的是533MHz,图像采集是400万25fps,resize A/B都用了,resize A把400万放大成500万,resize B把400万缩放成1080P。
然后偶尔会出resize overflow
看了你这个帖子,我尝试把ddr频率降到400M,发现特别容易复现resize overflow的问题,这样是不是就证明出现这个问题确实跟ddr的资源有关?
如果是这样的话,有没有什么解决这个问题的建议呢?我们A8测没有大量的非edma模式的ddr访问,提高ddr的频率的话我担心不稳定
提高vpss的主频会有效果么,谢谢
另外,我的init.sh里面iss优先级设置的是0,这个应该就是最高优先级了
我init.sh中也将iss的优先级设置为最高优先级了(这个是默认的)
./bin/sys_pri.out --dmm-pri-set ISS 0&
而且根据某帖子的建议加上了如下这一行:
./bin/sys_pri.out --L3-bw-reg-set ISS 3 3 100 2000&
貌似运行一段时间,还是会出现RESIZE OVERFLOW这个提示
真的抓狂. 我的DDR频率是533MHz,
不知道还怎样来解决这个问题了.
Chris Meng 说:你好,
出现的原因一般都是系统峰值DDR‘吞吐过高,ISS拿不到DDR资源供resizer输出。
你能否参考IPNC 3.8的init.sh里面的配置,使用sys_pri提高ISS的优先级?
请避免在A8侧有大量DDR访问,如果有,请用EDMA替代。
除了提供ISS在DMM侧的优先级还可以尝试调整:
1. 根据init.sh里面调整ISS的bandwidth regular
2. 配置DDR控制器寄存器PBBPR.PR_OLD_COUNT,建议配置0x10~0x60 (需要在系统上测试看哪个值适合/最优)
3. 降低其他访问DDR的master的DMM优先级 /调整其他master的bandwidth regular(通过sys_pri)
4. 降低/调整 HDVPSS采集/显示在DMM的优先级 (修改HDVPSS driver 里面的vps_config.h)