您好、TI 专家:
我们开发了一个类似于 vision_apps 中的 app_multi_cam 的应用。 并且在 Linux SDK7.3和 RTOS SDK7.3中可以正常工作。
现在、我们将 Linux SDK 和 RTOS SDK 升级到8.5、如下日志所示会发生 DMA 错误。
内存:初始化...!!!
MEM:已初始化 DMA 堆(FD=4)!!!
内存:初始化...完成!!
IPC:初始化...!!!
IPC:初始化...完成!!!
remote_service: init ...!!!
remote_service: init……done!!!
0.000000s:GTC 频率= 0 MHz
应用程序:初始化...完成!!
0.000000 s: vx_zone_init:已启用
0.000000 s: vx_zone_error:已启用
0.000000 s: vx_zone_warning:已启用
0.000000 s: vx_zone_init:[tivxInitLocal:145] Initialization done!!
0.000000 s: vx_zone_init:[tivxHostInitLocal:93]主机初始化已完成!
[APP INIT INFO]CMS LANES NUMBER = 4!
[APP INIT INFO]CMS SENSOR NUMBER = 2!
[应用程序初始 化信息]传感器初始化完成!
[APP INIT INFO -> Capture] CaptureObj->params.numDataLane = 4
[APP INIT INFO -> Capture] CaptureObj->params.dataLanesMap[0] = 1
[APP INIT INFO -> Capture] CaptureObj->params.dataLanesMap[1] = 2
[APP INIT INFO -> Capture] CaptureObj->params.dataLanesMap[2] = 3
[APP INIT INFO -> Capture] CaptureObj->params.dataLanesMap[3] = 4
内存:错误:/dev/dma-buf-phys 打开失败!!
内存:错误:大小的内存分配=216字节、失败且状态=-1!!
DDR_SHARED_MEM:分配:0个分配、共0字节
DDR_SHARED_MEM:free's:0 free's of 0 bytes
DDR_SHARED_MEM:open 的:0个 字节的分配
DDR_SHARED_MEM:总大小:536870912字节
内存:错误:翻译 dmaBufFd 失败[22]
我像7.3 SDK 中那样修改8.5 Linux dma 驱动程序 dma-buf-phys.c。
8.5sdk dma-buf-phys.c 条目:
module_platform_driver (dma_buf_phys_driver);
替换为以下代码:
静态 int __init dma_buf_phys_init (void)
{
struct platform_device * pdev;
Int ret;
REt = platform_driver_register (&dma_buf_phys_driver);
IF (RET)
返回支架;
pdev = platform_device_register_simple ("dma_buf_phys"、-1、NULL、0);
返回 ptr_ERR_or_zero (pdev);
}
device_initcall (dma_buf_phys_init);
更新上述代码后,我编译了一个新的 Linux 内核并再次运行应用程序。
/dev/dma-buf-phys 打开问题已解决。 但 MCU2_0显示错误和 A72 vxVerifyGraph 失败。
MCU2_0错误日志:
函数:CpswProxyServer_filterAddMacHandlerCb、hostid:0、handle:a381b204、CoreKey:38acb7e6、MacAddress:33:33:0:0:fb、vlanid:0、FlowIdx:172、FlowIdOffset:0
[MCU2_0] 16.982615 s:[uDMA]
[MCU2_0] 16.982682 s:[ERROR] RM PSI 配对失败!!!
[MCU2_0] 16.982719 s:[uDMA]
[MCU2_0] 16.982739 s:[错误] uDMA 通道配对失败!!
[MCU2_0] 16.982802 s:src / csirx_drvUdma.c @第246行:
[MCU2_0] 16.982836 s:[ERROR]UDMA 通道打开失败!!!
[MCU2_0] 16.982884 s:src / csirx_drv.c @行1544:
[MCU2_0] 16.982914 s:[ERROR]UDMA 通道关闭失败!!!
[MCU2_0] 16.982953 s:src / csirx_drv.c @行1544:
[MCU2_0] 16.982982 s:[ERROR]UDMA 通道关闭失败!!!
[MCU2_0] 16.983019 s:src / csirx_drv.c @第402行:
[MCU2_0] 16.983048秒:给定配置的创建失败
[MCU2_0] 16.983088 s:src / fvid2_drvMgr.c @第759行:
[MCU2_0] 16.983116 s:驱动程序创建失败!!
[MCU2_0] 16.983161 s:vx_zone_error:[tivxCaptureCreate:1206]:捕获创建失败!!
[MCU2_0] 17.268732 s:Q212x_reset:hPhy1处的 Q212x_reset phy2112
[MCU2_0] 22.668676 s:Q212x_RESET:hPhy1处的 Q212x_RESET phy2112
[MCU2_0] 28.068683 s:Q212x_reset:hPhy1处的 Q212x_reset phy2112
[MCU2_0] 33.468749秒:Q212x_reset:hPhy1处的 Q212x_reset phy2112
[MCU2_0] 38.868728 s:Q212x_RESET:hPhy1处的 Q212x_RESET phy2112
[MCU2_0] 44.268676 s:Q212x_RESET:hPhy1处的 Q212x_RESET phy2112
[MCU2_0] 49.668621:Q212x_reset:hPhy1处的 Q212x_reset phy2112
[MCU2_0] 55.068689 s:Q212x_reset:Q212x_reset phy2112 at hPhy1[MCU2_0] 6.432616 s Enet_So:&INF@ETH:C212x_RESET Open[163] Exit。
A72错误日志:
创建任务信息]应用程序交互任务创建...
0.000000 s:vx_zone_error:[ownContextSendCmd:802]命令确认消息返回失败 cmd_status:-1
0.000000 s:vx_zone_error:[ownContextSendCmd:838] tivxEventWait ()失败。
0.000000 s:vx_zone_error:[ownNodeKernelInit:525]目标内核,TIVX_CMD_NODE_CREATE 节点图形 Display_node 失败
0.000000 s:vx_zone_error:[ownNodeKernelInit:526]请确保目标回调已为此内核注册
0.000000 s:vx_zone_error:[ownNodeKernelInit:527]如果目标回调已注册,请确保在此内核的创建回调中没有出现错误
0.000000 s:vx_zone_error:[ownGraphNodeKernelInit:583]适用于节点0的内核初始化,内核 com.ti.hwa.display……失败!!
0.000000 s:vx_zone_error:[vxVerifyGraph:2055]节点内核初始化失败
0.000000 s:vx_zone_error:[vxVerifyGraph:2109]图形验证失败
您能帮助我找到根本原因吗?
非常感谢!

