大家好:
版本是DVRRDK04.01.00.02,参考RDK里面的config_2G.bld修改了内存分配,现在的分配情况是:
后面的1G把linux,SR3,TILER都减小了,分出来一部分空间作为DSP的第二部分,然后在BIOS_c6xdsp.cfg里面把bss,rodata,neardata,stack,bss:taskStackSection,systemHeap都移到了DSP第二部分:
systemHeap是256M,stack是64M,bss:taskStackSection是66M,都比较大所有移到后面了,
不知道这些分段的关系,所以不知道合不合适。现在程序运行十几分钟左右就报错了:
[c6xdsp ] 77172: Assertion @ Line: 585 in links_common/ipcFramesIn/ipcFramesInLink_tsk.c: pListElem->frameBuf.phyAddr[0][0] == pFrameBuf->addr[0][0] : failed !!!
报错是在函数
Int32 IpcFramesInLink_putEmptyFrames(Utils_TskHndl * pTsk, UInt16 queId,FVID2_FrameList * pFrameBufList),
UTILS_assert(pListElem->frameBuf.phyAddr[0][0] ==pFrameBuf->addr[0][0]);
应该是DSP释放Frame出错,我打印了地址:
[c6xdsp ] 1855137:IpcFramesInLink_putEmptyFrames:phyAddr[1008264]:addr[954f52d0]!!!
不知道出现的错误是不是DSP分的两段引起的,还是内存分配别的问题,请大家帮忙分析一下,谢谢!