USB论坛
直播中

李继明

8年用户 1170经验值
私信 关注
[问答]

UVC+MSC实现中MSC线程未运行的原因?

我正在尝试使用 EZUSB 运行 UVC + MSC。我有以下内容。但看起来只有 UVC 线程在运行,而 MSC 没有运行。fw 不响应 MSC 命令。我确保 LPM 已被禁用,只是为了检查传感器是否没有进入睡眠状态。

```
空虚
CyFxApplicationDefine (
空白)
{
无效* uvc_ptr = NULL ;
无效* msc_ptr = NULL ;
uint32_t apiRetStatus = CY_U3P_SUCCESS;

/* 为线程分配内存并创建线程 */
uvc_ptr = CyU3PMemAlloc ( UVC_APP_THREAD_STACK );
如果( uvc_ptr == NULL )
转到启动错误;

apiRetStatus = CyU3PThreadCreate ( & uvcAppThread , /* UVC 线程结构 */
"30:UVC_app_thread" , /* 线程 ID 和名称 */
CyCx3UvcAppThread_Entry , /* UVC 应用程序线程入口函数 */
0 , /* 没有输入参数到线程*/
uvc_ptr , /*指向分配的线程堆栈的指针*/
UVC_APP_THREAD_STACK , /* UVC 应用程序线程堆栈大小 */
UVC_APP_THREAD_PRIORITY , /* UVC 应用程序线程优先级 */
UVC_APP_THREAD_PRIORITY , /* 抢占阈值 */
CYU3P_NO_TIME_SLICE, /* 应用程序线程没有时间片 */
CYU3P_AUTO_START /* 立即启动线程 */
(英文):

/* 检查返回代码 */
如果( apiRetStatus != CY_U3P_SUCCESS)
转到启动错误;

/* 创建GPIO应用事件组 */
如果( CyU3PEventCreate ( & glCx3Event ) != CY_U3P_SUCCESS)
转到启动错误;
#ifdef静态捕获_启用
/* 为静态图像相关事件创建 GPIO 应用程序事件组 */
如果( CyU3PEventCreate ( & glStillImageEvent) != CY_U3P_SUCCESS)
转到启动错误;
#endif

/* 为线程分配内存 */
msc_ptr = CyU3PMemAlloc ( CY_FX_MSC_THREAD_STACK );

如果( msc_ptr == NULL )
转到启动错误;

apiRetStatus = CyU3PThreadCreate ( & mscAppThread , /* MSC 应用线程结构 */
"25:MSC 应用程序" , /* 线程 ID 和线程名称 */
MscAppThread_Entry , /* MSC 应用线程入口函数 */
0 , /* 没有输入参数到线程*/
msc_ptr , /*指向分配的线程堆栈的指针*/
CY_FX_MSC_THREAD_STACK , /* MSC 应用线程堆栈大小 */
CY_FX_MSC_THREAD_PRIORITY , /* MSC 应用线程优先级 */
CY_FX_MSC_THREAD_PRIORITY , /* MSC 应用线程优先级 */
CYU3P_NO_TIME_SLICE, /* 应用程序线程没有时间片 */
CYU3P_AUTO_START /* 立即启动线程 */
(英文):

MscAppCreateEvent ();

返回;

启动错误:
{
/* 无法创建应用程序所需的线程和对象。这是一个致命错误,我们无法
* 继续。
*/

/* 在此处添加自定义恢复或调试操作 */

while ( 1 );
}
}
```

更多回帖

发帖
×
20
完善资料,
赚取积分