This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/TM4C1294NCPDT:任务#39;receiveFxn#39;不在项目 usbserialdevice_EK_TM4C1294XL_TI 中运行

Guru**** 2589265 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/590849/rtos-tm4c1294ncpdt-task-receivefxn-does-not-run-in-project-usbserialdevice_ek_tm4c1294xl_ti

器件型号:TM4C1294NCPDT

工具/软件:TI-RTOS

您好!

我从 CCS 6.2、Windows 10在 Tiva C 1294 LaunchPad 上运行项目'usbserialdevice_EK_TM4C1294XL_TI'。 发送器的工作方式如 PuTTY 控制台上所示:  

但任务 接收 Fxn 始终保持在行:

USBCDCD_waitForConnect (BIOS_wait_forever);

对于 Tiva C、RTOS 版本看起来是2.16.0.08

您能检查出什么问题吗?

谢谢、

e2e.ti.com/.../5265.usbserialdevice_5F00_EK_5F00_TM4C1294XL_5F00_TI.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    下面是有关项目的一些信息。 当在 CCS 中运行项目时、我首先断开 USB 电缆、以便让程序初始化 USB。 然后插入 USB 电缆、运行 PuTTY。 在 PuTTY 的新控制台中、我看到"TI-RTOS controls USB"消息。

    第二点是下面的函数。 我看到 GateMutex_leave ()不能与 GateMutex_enter()配对。 首先,确实是这样
    'STATE = USBCDCD_State_Unconfigured'

    不运行栅极离开是否正确?

    谢谢、

    、、、、、、、、、、、、、、、、、、、、、、、、

    /*
    *==== USBCDCD_waitForConnect ====
    *
    bool USBCDCDCD_waitForConnect (unsigned int timeout)

    bool ret = true;
    unsigned int key;

    /*需要独占访问以防止竞争状态*/
    KEY = GateMutex_enter (gateUSBWait);

    if (state == USBCDCD_State_Unconfigured){
    if (!semaphore_pend (semUSBConnected、timeout)){
    RET = false;



    GateMutex_leave (gateUSBWait、key);

    返回(RET);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    发现在下面的回调函数中没有发布'semRxSerial'。 这会导致 USB 读取数据代码等待它。

    有什么关于回调函数'cbRxHandler'为何不运行的想法?

    您可以使用我之前上传的项目重复该问题吗?

    谢谢、

    ///////////////////////////////////

    静态 USBCDEventType cbRxHandler (void *cbData、USBCDEventType 事件、

                      USBCDEventType eventMsg、

                      void *eventMsgPtr)

      switch (event){

        案例 USB_EVENT_RX_Available:

          Semaphore_post (semRxSerial);

          中断;

        案例 USB_EVENT_DATA_LEART剩余:

          中断;

        案例 USB_EVENT_Request_buffer:

          中断;

        默认值:

          中断;

      }

    tUSBBuffer rxBuffer ={

      错误、            /*这是一个接收缓冲区。 *

      cbRxHandler、         /* pfnCallback */

      (void *) serialDevice、   //回调数据是我们的设备指针。 *

      USBDCDCPacketRead、      /* pfnTransfer */

      USBDCDCRxPacketAvailable、 // pfnAvailable

      (void *) serialDevice、   // pvHandle */

      receiveBuffer、        /* pcBuffer */

      USBBUFFERSIZE、        /* ulBufferSize */

      {{0、0、0、0}、0、 0}    /*私有数据工作区*/

    };

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    开箱即用示例是否不起作用? 我刚才验证了它是否适合我。 我也在使用 Windows 10。 设备管理器中显示了哪些端口?