完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
亲爱的先生,
我想调试CX3中的MIPI块,例如MIPI块中的计数错误,因为视频偶尔会消失。我启用这两个宏 *取消对以下行的注释,以提供详细的调试日志记录。*/ 定义1的CX3X调试工具 *取消注释以下行以运行MIPI错误线程*/ 定义Cx3Error TraceRelabl 1 我在其他UVC C(线程创建位置)中看到了这个MIPI错误线程代码,但是在UVC VC中找不到MIPI错误线程,它是由Eclipse套件生成的。 有人能告诉我为什么吗? 谢谢。 戴维 下面的部分来自UVC /*应用程序定义创建线程的函数。*/ 无效 CyFxApplicationDefine 无效) { 空白* PTR=NULL; UIT32 32 ApItRealSt= CYU-3pl成功; *为线程分配内存并创建线程*/ PTR=CYU3pMeMeloC(UVCL AppththRead堆栈); 如果(PTR==空) Goto StudiPror; ApItReStase= Cuu3pthRead创建(&;uvcAppTo线,/*UVC线程结构*//) “30:uvcAppAppType”,/*线程ID和名称*/ CYCX3UVCAPthRead入门,/*UVC应用线程输入功能*// 0,/*没有输入参数线程* PTR,/*指针指向分配的线程堆栈*/ UVCpAppTHeRead堆栈,/*UVC应用线程堆栈大小*// UVCX AppththRead优先级,/*UVC应用线程优先级*// uvcAppAppthRead优先级,/*抢占阈值*// Cyu3PyNoTimeTimeId切片,/*没有应用程序线程的时间片*/ CYU3PYAutoSux/*立即启动线程*/ ; *检查返回代码*/ 如果(ApRestStand)!= CYU-U3PY成功 Goto StudiPror; /*创建GPIO应用程序事件组*/ 如果(CYU3pEvestCube(&GLCX3EVER)!= CYU-U3PY成功 Goto StudiPror; 使之成为可能 /*为静止图像相关事件创建GPIO应用事件组*/ 如果(Cyu3pEviCuto(&;GLSistLimaEvGeor)!= CYU-U3PY成功 Goto StudiPror; 第二节 返回; StartupError: { /*未能创建应用程序所需的线程和对象。这是致命的错误,我们不能 *继续。 */ *在这里添加自定义恢复或调试动作* (1); } } 以上来自于百度翻译 以下为原文 Dear Sir, I wan to to debug mipi block in CX3 ,for example, those counts error in mipi block, because video disappears occasionally. I enable these two MACRO /* Uncomment the following line to provide verbose debug logging. */ #define CX3_DEBUG_ENABLED 1 /* Uncomment the following line to run the mipi error thread */ #define CX3_ERROR_THREAD_ENABLE 1 I had seen this mipi-error thread code in other uvc.c(thread create location) , But I cannot find mipi-error thread in my uvc.c , it is generated by eclipse suite. Can anybody tell me why? Thanks. David The following section is from uvc.c /* Application define function which creates the threads. */ void CyFxApplicationDefine ( void) { void *ptr = NULL; uint32_t apiRetStatus = CY_U3P_SUCCESS; /* Allocate the memory for the thread and create the thread */ ptr = CyU3PMemAlloc (UVC_APP_THREAD_STACK); if (ptr == NULL) goto StartupError; apiRetStatus = CyU3PThreadCreate (&uvcAppThread, /* UVC Thread structure */ "30:UVC_app_thread", /* Thread Id and name */ CyCx3UvcAppThread_Entry, /* UVC Application Thread Entry function */ 0, /* No input parameter to thread */ ptr, /* Pointer to the allocated thread stack */ UVC_APP_THREAD_STACK, /* UVC Application Thread stack size */ UVC_APP_THREAD_PRIORITY, /* UVC Application Thread priority */ UVC_APP_THREAD_PRIORITY, /* Pre-emption threshold */ CYU3P_NO_TIME_SLICE, /* No time slice for the application thread */ CYU3P_AUTO_START /* Start the Thread immediately */ ); /* Check the return code */ if (apiRetStatus != CY_U3P_SUCCESS) goto StartupError; /* Create GPIO application event group */ if (CyU3PEventCreate(&glCx3Event) != CY_U3P_SUCCESS) goto StartupError; #ifdef STILL_CAPTURE_ENABLE /* Create GPIO application event group for still image related events */ if (CyU3PEventCreate(&glStillImageEvent) != CY_U3P_SUCCESS) goto StartupError; #endif return; StartupError: { /* Failed to create threads and objects required for the application. This is a fatal error and we cannot * continue. */ /* Add custom recovery or debug actions here */ while(1); } } |
|
相关推荐
2个回答
|
|
亲爱的先生,
当CB发生故障时,在DMAYRESETLY事件过程中添加CYU3PMIPICSIGETEARGE(CyTrand,Engand;ErrCNTs),ErrCNTs=257,0x101(HEX)。 谁能告诉我这个价值有什么意义? 戴维 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// If(EngEngand & Cx3O-DMAYRESETIOL事件) { 如果(DMALRESETHOLFLAG==0) { CYU3pDebug打印(4,\NRCB失败); CurTime= CYU3PGETIMECTIME(); CYU3pDebug(4),“@ %D(MS)”,CurTimes; /继续; } 否则如果(DMALRESETHOLFLAG==1) { CYU3pDebug打印(4,\N-RVIEW定时器); CurTime= CYU3PGETIMECTIME(); CYU3pDebug(4),“@ %D(MS)”,CurTimes; } γIFIFF打印帧信息 TxCalt=0; RxCube=0; 第二节 DMALRESETHOLL FLAG=0; /*帧超时。中止并重新启动流。*/ 如果(gLISPAPnAc激活) { //读取CX3内部CSII错误状态寄存器 uTIN 32 t ErnCNTS=0; 静态UIT32×T i=0; CYU3PMIPICSIGTITE错误(Cytrue and EngEnter;ErrCNTs); CYU3pDebug打印(4,\NRCYCX3UVCAPTHEADRADIONESTION: CYU3PMIPICSIGETROVER %D,I=%D”,ErrCNTs,I); I++; CYCX3UVCAPSPAST(); CYU3pDebug打印(4,\NRCYCX3UVCAPTHEADRADIONEXCEL:CX3O-DMAYRESETLY事件UVC将停止并重新启动); CYCX3UVCAPSTATE(); } //如果GLISPUnnActive不活动,则不应重新启动UVC应用程序。 //注释出修复此错误。 //Cyu3pDebug打印(4)\nCyCxx3UVCppthRead条目:Cx3xDMAYRESETLY事件UVC将停止并重新启动“”; //CYCX3UVCAPSTATE(); αIFIFF恢复时间 CYU3pTimeStand(UVCIMTIME); CYU3pTimeRead(&;UVCIMTIME,TimeRY周期,0); 第二节 } 以上来自于百度翻译 以下为原文 Dear SIr, I add CyU3PMipicsiGetErrors( CyTrue, &errCnts) in DMA_RESET_EVENT process, when cb failure occurs ,errCnts = 257, 0x101(hex) Can anyone tell me what meaning for this value? David /////////////////////////////////////////////////////////////////////////////////////////////////////////// if (eventFlag & CX3_DMA_RESET_EVENT) { if (dma_reset_flag == 0) { CyU3PDebugPrint(4,"nrCB failure"); curTime = CyU3PGetTime(); CyU3PDebugPrint(4," @ %d(ms)", curTime); //continue; } else if (dma_reset_flag == 1) { CyU3PDebugPrint(4,"nrVideo timer"); curTime = CyU3PGetTime(); CyU3PDebugPrint(4," @ %d(ms)", curTime); } #ifdef PRINT_FRAME_INFO TxCount = 0; RxCount = 0; #endif dma_reset_flag = 0; /* Frame timed out. Abort and start streaming again. */ if (glIsApplnActive) { //read cx3 internal csi2 error status register uint32_t errCnts=0; static uint32_t i = 0; CyU3PMipicsiGetErrors( CyTrue, &errCnts); CyU3PDebugPrint (4,"nrCyCx3UvcAppThread_Entry:CyU3PMipicsiGetErrors %d,i=%d", errCnts,i); i++; CyCx3UvcAppStop(); CyU3PDebugPrint (4,"nrCyCx3UvcAppThread_Entry:CX3_DMA_RESET_EVENT UVC will stop and restart"); CyCx3UvcAppStart(); } // if glIsApplnActive is not active, we should not restart UVC application // commented out to fix this bug. //CyU3PDebugPrint (4,"nrCyCx3UvcAppThread_Entry:CX3_DMA_RESET_EVENT UVC will stop and restart"); //CyCx3UvcAppStart(); #ifdef RESET_TIMER_ENABLE CyU3PTimerStop (&UvcTimer); CyU3PTimerModify (&UvcTimer, TIMER_PERIOD, 0); #endif } |
|
|
|
shen9283 发表于 2018-11-16 16:53 亲爱的先生, 当CB故障再次发生(第二次)时,ErrCNTs=514,0x0202(HEX)。 我知道内部MIPI块与东芝TC358266相同,有几个错误状态寄存器,ErrCNTs和这些错误状态寄存器之间有什么关系? 以上来自于百度翻译 以下为原文 Dear SIr, When CB failure occurs again(the second time) ,errCnts = 514,0x0202(hex). I know the internal mipi block is same as toshiba TC358746, there are several error status registers, what is the relationship betwwen errCnts and these error status registers? |
|
|
|
只有小组成员才能发言,加入小组>>
748个成员聚集在这个小组
加入小组2052 浏览 1 评论
1806 浏览 1 评论
3615 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1742 浏览 6 评论
1496 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
476浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
330浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
398浏览 2评论
339浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
815浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-5 02:06 , Processed in 0.878748 second(s), Total 52, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号