硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1538|回复: 4
收起左侧

使用USBX主从同时使用进入硬错误中断

[复制链接]

25

主题

232

回帖

307

积分

高级会员

积分
307
QQ
发表于 2024-7-1 16:16:26 | 显示全部楼层 |阅读模式
我想要使用H7的两个USB外设,分别使用USBX主机库读写U盘,使用USBX从机库CDC与电脑通信。
用安富莱V7板已经分别跑通。
但是为自己的板子使用stm32cubeMX生成模板工程时却无法正常运行,调度时会进硬件中断。(附件有cubeMX文件) stm32_mx.zip (6.04 KB, 下载次数: 1)

在自动生成的tx_application_define()函数中有如下代码段,分别对USBX主机系统和USBX设备系统进行初始化,注释掉其中之一,系统都可以正常运行并闪灯(我的测试任务)。但是二者的初始化API都调用,系统调度发生时就会进硬错误。
[C] 纯文本查看 复制代码
  if (tx_byte_pool_create(&ux_host_app_byte_pool, "Ux HApp memory pool", ux_host_byte_pool_buffer, UX_HOST_APP_MEM_POOL_SIZE) != TX_SUCCESS)
  {
    /* USER CODE BEGIN UX_Byte_Pool_Error */
// 注意内存池名需要修改,host与device使用的内存池默认是同名的,会出现错误
    /* USER CODE END UX_Byte_Pool_Error */
  }
  else
  {
    /* USER CODE BEGIN UX_HOST_Byte_Pool_Success */

    /* USER CODE END UX_HOST_Byte_Pool_Success */

    memory_ptr = (VOID *)&ux_host_app_byte_pool;
    status = MX_USBX_Host_Init(memory_ptr);
    if (status != UX_SUCCESS)
    {
      /* USER CODE BEGIN  MX_USBX_Host_Init_Error */
      while(1)
      {
      }
      /* USER CODE END  MX_USBX_Host_Init_Error */
    }

    /* USER CODE BEGIN MX_USBX_Host_Init_Success */

    /* USER CODE END MX_USBX_Host_Init_Success */
  }

  if (tx_byte_pool_create(&ux_device_app_byte_pool, "Ux DApp memory pool", ux_device_byte_pool_buffer, UX_DEVICE_APP_MEM_POOL_SIZE) != TX_SUCCESS)
  {
    /* USER CODE BEGIN UX_Device_Byte_Pool_Error */

    /* USER CODE END UX_Device_Byte_Pool_Error */
  }
  else
  {
    /* USER CODE BEGIN UX_Device_Byte_Pool_Success */

    /* USER CODE END UX_Device_Byte_Pool_Success */

    memory_ptr = (VOID *)&ux_device_app_byte_pool;
    status = MX_USBX_Device_Init(memory_ptr);
    if (status != UX_SUCCESS)
    {
      /* USER CODE BEGIN  MX_USBX_Device_Init_Error */
      while(1)
      {
      }
      /* USER CODE END  MX_USBX_Device_Init_Error */
    }

    /* USER CODE BEGIN MX_USBX_Device_Init_Success */

    /* USER CODE END MX_USBX_Device_Init_Success */
  }


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-7-2 09:33:57 | 显示全部楼层
USBX的主从同时使用还没用过。只测过RL-USB主从同时使用。
回复

使用道具 举报

10

主题

75

回帖

120

积分

初级会员

积分
120
发表于 2024-7-2 12:42:43 | 显示全部楼层
试试拉大相关任务的堆栈大小
回复

使用道具 举报

25

主题

232

回帖

307

积分

高级会员

积分
307
QQ
 楼主| 发表于 2024-7-8 17:18:21 | 显示全部楼层
egoistaw 发表于 2024-7-2 12:42
试试拉大相关任务的堆栈大小

似乎是说stm32H7内部只有一个USB内核(且只有一个全速PHY),所以主从只能分时开启、复用,不能同时开启USB主从。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-7-9 17:44:18 | 显示全部楼层
yono 发表于 2024-7-8 17:18
似乎是说stm32H7内部只有一个USB内核(且只有一个全速PHY),所以主从只能分时开启、复用,不能同时开启USB ...

H7是两个独立的USB外设。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 00:43 , Processed in 0.041106 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表