您好!
我正在尝试调试 USB 应用程序、当我设置一个断点时、我向后跳至固件应用程序中的不正确行。 有人知道为什么会发生这种情况吗? 在断点使用"步入"或"步越"时、我会看到零星的行为(跳到看起来像随机位置的地方)。 所附的屏幕截图中提供了一个示例。 我尝试"单步执行"函数调用"USBDBulkInit"、但相反、如箭头所示向后跳转至"USBStackModeSet"。 如果我继续单击"跳转至"、我最终进入设置了断点的函数调用、但在该调用中、我只经历了更零星的行为。
非常感谢任何帮助。

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.
您好!
我正在尝试调试 USB 应用程序、当我设置一个断点时、我向后跳至固件应用程序中的不正确行。 有人知道为什么会发生这种情况吗? 在断点使用"步入"或"步越"时、我会看到零星的行为(跳到看起来像随机位置的地方)。 所附的屏幕截图中提供了一个示例。 我尝试"单步执行"函数调用"USBDBulkInit"、但相反、如箭头所示向后跳转至"USBStackModeSet"。 如果我继续单击"跳转至"、我最终进入设置了断点的函数调用、但在该调用中、我只经历了更零星的行为。
非常感谢任何帮助。

您好!
Unknown 说:有人知道为什么会发生这种情况吗?
最常见的原因是您正在尝试调试优化的代码。
有关更多详细信息、请参阅以下文章:
https://dev.ti.com/tirex/explore/node?node=A__AEm7LJjS34iFPa5fpT7ttQ__ccs_devtools__FUz-xrs__LATEST
谢谢
小标题
这听起来很合理、但有两个简短的问题。
1.我正在使用 USB 驱动程序库、我注意到当我更改 USB 代码的根 TIvaware 驱动程序库文件夹中的源代码时、所做的更改不会生效。 我假设这是因为代码未编译但链接进来、因为我可以复制并粘贴所需的库文件、在我的 main.c 中更改 include 语句、然后用修改内容重新编译、这样就可以看到。 所以-这是一个问题吗? 我可以删除"my"源代码的所有优化、但无法删除 TIvaware USB 驱动程序库的所有优化。
2.我需要自行重新编译 USB 驱动程序库以删除编译期间可能进行过的任何优化、还是 CCS 应该每次在我缺少某些内容时都重新编译 TIvaware USB 驱动程序库?
Ki、您好!
感谢您的回答、您似乎是正确的。 在处理此项目时、我已重新编译 usblib 项目、并将对其进行测试、以查看我是否可以立即单步调试具有优化功能的代码。 但是、我确实注意到了一些导致我们快速提出几个问题的东西。
1.当我关闭优化器后打开 usblib 项目以重新编译时、我注意到在器件文件夹中无法看到头文件。 这是预期结果吗? 当它"包含"到我的自定义项目中、我转到"包含"文件夹并在 CCS 项目导航器中浏览到该 USB 器件文件夹时、我可以看到头文件。

2.开发/调试优化代码的典型方法是什么? 我还没有做很多这方面的工作、但我想很多固件工程师必须进行一定程度的优化-他们在这种情况下如何进行调试?
1. 当我在关闭优化后打开 usblib 项目以重新编译时、我注意到在器件文件夹中无法看到头文件。 这是预期结果吗? 当它"包含"到我的自定义项目中、我转到"包含"文件夹并在 CCS 项目导航器中浏览到该 USB 器件文件夹时、我可以看到头文件。
我假设您在引用 TivaWare 中的 usblib。 Project Explorer 中的"Includes"文件夹应显示工程构建设置中的所有包含搜索路径。 如果您展开文件夹、它将列出该文件夹的所有内容。 以下是预期行为。

2. 开发/调试代码的典型优化方法是什么? 我还没有完成很多工作、但我想很多固件工程师必须进行一定程度的优化-他们在这种情况下如何进行调试?
这实际上在我前面提到的文章"做什么"中讨论过。
https://dev.ti.com/tirex/explore/node?node=A__AEm7LJjS34iFPa5fpT7ttQ__ccs_devtools__FUz-xrs__LATEST
谢谢
小标题
我的第一个问题其实只是问为什么我的 USB 设备测试项目(正常的 TM4C 项目)显示头文件而 usblib (您是正确的-来自 Tivaware)仅显示.c 文件? [/报价]因为在您的 第一个屏幕截图中,Includes 文件夹显示目录中所有文件的内容。
在第二个屏幕截图中、您不是查看 Includes 文件夹的内部、而是查看 /器件中。 该文件夹为空。 在 Project Explorer 中、您可以看到一组链接文件。 这些文件实际上并不在该文件夹中、而是工程引用了工程文件夹之外的实际位置。
您可以通过查看文件属性看到、该文件位于根 TivaWare 目录而不是工程文件夹中。
仅链接*。c 文件、而不是头文件。
有关链接文件的更多信息、请参阅:
谢谢
小标题