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.

关于 [m3vpss ] ##################### REISZER OVERFLOW OCCURED: RESTARTING...############################的问题

我这边使用的芯片是8127, 最近在运行程序中,从串口中打印了如下的日志信息:

 [m3vpss ]      ##################### REISZER OVERFLOW OCCURED: RESTARTING...############################

然后挂掉了,从字面意义上看貌似是resizer时出错了,不是每次都出现这个问题,百思不得其解,麻烦哪位能指导下,这个错误具体是什么意思的?什么情况下会出现的?

先谢谢了.

  • 看看下面的几个帖子,是否有帮助:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/363148

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/265001

  • 首先感谢你的回复,我看了相关的连接,也对比了我的代码,貌似对不上.

    我在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)