请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C1294KCPDT 我注意到、usblib 中的 ULPI 代码始终编译到固件映像中、即使外部硬件不存在也是如此、因此代码将不使用。 这是因为针对 ULPI 的唯一测试是运行时条件、这意味着链接器必须始终引入该代码、为潜在未使用的功能占用闪存空间。
一般而言、我注意到德州仪器的 TivaWare 库对于排除永远不会使用的代码非常有效。 通常、这似乎由在编译时而不是运行时评估的#define 指令来处理。 另一个示例是该文档展示了如何使用 USB0HostIntHandler()编写纯主机代码,这样编译器和链接器就不会引入任何不必要的器件代码。 我只是指出、以类似的方式处理可选 ULPI 支持可能会有优势、从而避免浪费有限的闪存空间。
我发现这种监督是因为我将参考书目纳入了我的项目的修订控制。 我只复制了构建纯主机固件所需的源代码、而不是复制所有内容。 我注意到有几个必要的器件接头、但它们不需要相应的器件代码。 相比之下、不仅需要 ULPI 标头、而且还必须在中编译 ULPI 源代码。 如果不改写 usblib、就无法避免这种情况。 我意识到这是一个小问题、但德州仪器可能值得努力提高这里的空间效率。