器件型号: J784S4XEVM
您好:
我正在 J784S4 EVM 上测试 CSI。
使用该drv/csitx/examples/csitx_transmit_test示例在 RTOS 上执行该测试。
我试图在改变车道速度时测量时间、但我对测量的时间是否准确有一些疑问、因此我想要求澄清一下。
在测试设置中、使用 Samtec 电缆直接连接 CSI-TX 端口 1 和 CSI-RX 端口 2。
以下是使用 CCS 测得的结果:
CSITX_CAPT_APP: 1001 frames captured in 2604 msec at the rate of 384.40 frames/sec.
==========================================================
CSITX_TX_APP: Tx Status:
==========================================================
CSITX_TX_APP: Frames Transmitted: 1036
CSITX_TX_APP: Frames Transmitted with errors: 0
CSITX_TX_APP: FIFO Overflow Count: 0
CSITX_TX_APP:[Channel No: 0] | Frame Queue Count: 260 | Frame De-queue Count: 260 | Frame Repeat: 0 |
CSITX_TX_APP:[Channel No: 1] | Frame Queue Count: 260 | Frame De-queue Count: 260 | Frame Repeat: 0 |
CSITX_TX_APP:[Channel No: 2] | Frame Queue Count: 260 | Frame De-queue Count: 260 | Frame Repeat: 0 |
CSITX_TX_APP:[Channel No: 3] | Frame Queue Count: 260 | Frame De-queue Count: 260 | Frame Repeat: 0 |
CSITX_TX_APP: 1036 frames transmitted in 2526 msec at the rate of 409.34 frames/sec.
==========================================================
CSITX_TX_APP: Capture Status:
==========================================================
CSITX_TX_APP: Frames Received: 1036
CSITX_TX_APP: Frames Received with errors: 0
CSITX_TX_APP: Capture Application Completed!!!
CSITX_TX_APP: FIFO Overflow Count: 0
CSITX_TX_APP: Spurious UDMA interrupt count: 0
CSITX_TX_APP:[Channel No: 0] | Frame Queue Count: 263 | Frame De-queue Count: 263 | Frame Drop Count: 0 |
CSITX_TX_APP:[Channel No: 1] | Frame Queue Count: 263 | Frame De-queue Count: 263 | Frame Drop Count: 0 |
CSITX_TX_APP:[Channel No: 2] | Frame Queue Count: 262 | Frame De-queue Count: 262 | Frame Drop Count: 0 |
CSITX_TX_APP:[Channel No: 3] | Frame Queue Count: 263 | Frame De-queue Count: 263 | Frame Drop Count: 0 |
CSITX_Capt_app:在 2604ms 内以 384.40 帧/秒的速率捕获 1001 个帧
CSITX_TX_APP:在 2526 毫秒内以 409.34 帧/秒的速率传输 1036 帧
尽管 CCS 测量显示了上述结果、但在测量实际经过的时间时、完成 1000 帧的传输需要超过一分钟。
即使在禁用所有日志并再次运行测试后、它仍然持续需要一分钟。
从下面的代码来看、时间度量本身似乎没有任何明显的问题、但差异太大。
int32_t App_csirxTest(appTxObj* appObj)
{
int32_t retVal = FVID2_SOK;
uint32_t startTime, elapsedTime, fps;
uint64_t tempVar;
startTime = App_getCurTimeInMsec();
/* Wait for reception completion */
if (0U == appObj->captObj.numFramesToCapture)
{
/* indefinite capture */
/* TODO: Press any key to stop capture */
}
else
{
while (appObj->captObj.numFramesRcvd < appObj->captObj.numFramesToCapture)
{
/* Pend on semaphore until last frame is received */
SemaphoreP_pend(gRxLockSem, SemaphoreP_WAIT_FOREVER);
/* Check for Image data here */
}
}
elapsedTime = App_getElapsedTimeInMsec(startTime);
我不确定测试设置是否不正确、时钟配置是否有问题、或者直接电缆连接是否可能导致该问题。 希望获得任何帮助或指导。
谢谢你。