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.

[参考译文] TMS320F28375D:Endpoint0 支持和供应商命令

Guru**** 2529560 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1562292/tms320f28375d-endpoint0-support-and-vendor-commands

器件型号:TMS320F28375D


工具/软件:

大家好、 我已经开发了几款基于 TMS32F28375D 的电路板。  我想使用供应商命令与 endpoint0 通信 的软件的主机端是成熟的,我想让这些新的主板与现有的 Windows 软件兼容。  C2000 USB 库中似乎存在供应商命令的基础知识、但我在文档中没有找到示例和稀疏的说明。  第 2.37.2 节介绍了如何使用 pfnRequestHandler、我认为这正是我需要的。  我是否 通过类似于端点处理程序的 Bluffer 连接请求处理程序?  我没有发现任何迹象表明端点 0 缓冲区已经用请求处理程序创建。  如果它已经存在、如何链接到它?

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

    仔细阅读 F2837xD/USBL_UG.pdf 第 2.37 节后、我发现我的问题陈述得很差。  第 2.37 节明确规定:“应用程序必须用有效的函数指针填充表(tCustomHandlers 类型的结构)、用于它希望通知的每个事件。“  因此、我需要为 pfnRequestHandler 提供一个有效的函数指针。  USB 库的源代码使用 (const tCustomHandlers g_sBulkHandlers) 创建表、并为 pfnRequestHandler 插入“0"。“。  我可以在我的应用程序中创建请求处理程序、问题是、在库将值设置为零后、应用程序如何使用函数指针填充表。 此常量未在头文件中公开、我在编译时或运行时都找不到运行状况函数来帮助进行此更改。   

    此时、我似乎有两个选项可用于在表中插入请求处理程序。

    1) 在 USB 库中创建辅助函数、该函数可以在该表中动态地插入函数指针。 省略我自己版本的 USB 库后、我可以在 USBInit 之前调用此辅助函数。  这样做的优点是我可以在应用程序中调试请求处理程序、而不是在 USB 库中调试请求处理程序。  也可以为不同的应用程序更改请求处理程序。

    2) 只需将请求处理程序放入 USB 库中、并将函数指针插入 talbe。  缺点是我会针对特定供应商命令调试 USB 库。  此外、如果供应商命令随应用程序而变化、我必须为所有应用程序开发一个请求处理程序。

    我在这里遗漏了什么吗?  哪个选项似乎更好?

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

    James

    我更喜欢选项 1。 您可以创建 一个辅助函数、将函数指针插入表中。

    此致

    Siddharth