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.

[参考译文] EK-TM4C1294XL:愿意在另一个现有应用工程时集成 TI RTOS (NDK) 的 TcpEcho 示例工程

Guru**** 2465890 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1547611/ek-tm4c1294xl-willing-to-integrate-the-tcpecho-example-project-from-ti-rtos-ndk-wit-another-existing-application-project

器件型号:EK-TM4C1294XL


工具/软件:

你好!

今天的问候!

我有一个使用 TI RTOS (2.16) 并使用 USB 的现有工程。 但我现在愿意使用以太网。 我愿意 将 TcpEcho 套接字代码与现有应用集成。 根据我的理解、我必须在属性中添加 NDK、并且必须更改.cfg NDK 配置。 我在整合这些项目时仍面临一些问题。 您能指导我如何实现这一目标吗? 我收到未定义的栈大小和 NIMUDeviceTable 错误。

期待您的帮助! 请查看下面随附的屏幕截图

此致、

Siddhi Upadhyay

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

    您好、

     您能先尝试一下 TcpEcho 项目吗? 您是否会遇到编译问题?

     有关未定义的  NIMUDeviceTable、请参阅此帖子。  https://e2e.ti.com/support/processors-group/processors/f/processors-forum/574689/rtos-tm4c1294ncpdt-tiva-ti-rtos-unresolved-symbol-nimudevicetable?tisearch=e2e-sitesearch&keymatch=NIMUDeviceTable#。   如果您导入了 TcpEcho 工程、则 NIMUDeviceTable 在板级文件 ek_TM4C1294XL .c 中定义。 由于要将以太网添加到现有工程中、因此板级配置文件很可能不会更新。 理想的方法是首先按原样运行 TcpEcho 工程、然后将生成的板级配置文件与当前板级配置文件进行比较、然后调整所需的设置。

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

    尊敬的 Charles:

    感谢您的答复。

    是的、我的 TcpEcho 代码正在正常构建、编译和运行。 但是,我遇到了与我现有的独立项目集成 TcpEcho 代码的问题(在没有集成的情况下也能正常工作)。

    您能否帮助我找到一种方法、让我可以直接在现有项目中使用 TCPEcho Project、而无需手动集成它们?

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

    您好、

     您的 USB 项目是如何创建的? 您是否不是使用.cfg 来创建 USB 工程? 如果您的 USB 工程具有.cfg 、那么我建议您查看 usb.cfg 和 tcpecho.cfg 并将它们组合在一起。 也许从 TcpEcho 工程开始作为基准、然后添加您拥有的 USB 源文件会更容易。  

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

    尊敬的 Charles:

    感谢您的答复。

    我了解了这两个工程的.cfg 文件、并尝试集成它们。 我在这方面取得了良好进展。 但 TcpEchoHooks.c 中调用了函数 netOpenHook ,我也在我的独立代码中使用了相同的函数,并正确地声明了它,但它给了我一个错误的说 “netOpenHook 未定义“ 。 我已将 NDK 配置添加到我的.cfg 中。 我还提到了栈挂钩函数中的函数声明。 我附上了下面的屏幕截图以供您参考。

    请帮助我解决这个问题、期待您的答复。

    此致、

    Siddhi

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

    尊敬的 Siddhi:

    [引述 userid=“641596" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1547611/ek-tm4c1294xl-willing-to-integrate-the-tcpecho-example-project-from-ti-rtos-ndk-wit-another-existing-application-project/5958709

    我了解了这两个工程的.cfg 文件、并尝试集成它们。 我在这方面取得了良好进展。 但 TcpEchoHooks.c 中调用了函数 netOpenHook ,我也在我的独立代码中使用了相同的函数,并正确地声明了它,但它给了我一个错误的说 “netOpenHook 未定义“ 。 我已将 NDK 配置添加到我的.cfg 中。 我还提到了栈挂钩函数中的函数声明。 我附上了下面的屏幕截图以供您参考。

    请帮助我解决这个问题、期待您的答复。

    此致、

    Siddhi

    [/报价]

     链接期间会生成错误。  

    在下面的文章中、Todd 提到使用 XCCONF 配置的 TcpEcho 工程 将 自动拾取必要的库。 您可以在 debug/configPkg 中查看生成的 linker.cmd 文件。 您可以看到需要添加的 NDK 库。  

    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/607365/rtos-tm4c1294ncpdt-how-do-you-link-to-the-ndk

    在下面的文章中、OP 显示了如何在链接器脚本中指定 NDK 库、以及如何解决问题。  

     https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/891734/ccs-tm4c1294ncpdt-what-s-the-correct-way-to-manually-link-ndk-libraries-to-a-project 

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

    尊敬的 Charles:

    我添加了 NDK 库。 在 TCP 工程中、当我打开 netOpenHook 上的声明时、cpecpecho_pem4f.c 文件打开、但在我的独立工程中、点击 netOpenHook 时、我的独立工程的 pem4f.c 未打开。 如何获得此链接?

    如何在我的个人项目中获得 TI 链接?

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

    您好、

     我想您能够成功构建工程、对吧?

    如何在我的个人项目中获得 TI 链接?

    我不知道该如何在 CCS 中完成。 您可以右键单击 netOpenHook、如下所示。 您看到 netOpenHook 的参考吗?

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

    尊敬的 Charles:

    我检查了,对于我的项目,我无法看到 netOpenHook () 的任何引用。 您能指导我如何引用这些内容吗?

    请找到下面随附的屏幕截图以供您参考。

    此致、

    Siddhi

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

    您好、  

     项目编译是否成功?

     您能否在 netOpenHook 函数中放置一个断点? 显示已放置断点的做法是否可行?

     如果您可以看到调试器插入的断点、您能否运行代码、处理器是否会在断点处停止?

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

    尊敬的 Charles:

    没有、工程没有编译、我收到相同的错误、netOpenHook 未定义、首先在_pem4f.oem4f 文件中引用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“641596" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1547611/ek-tm4c1294xl-willing-to-integrate-the-tcpecho-example-project-from-ti-rtos-ndk-wit-another-existing-application-project/5966161

    没有、工程没有编译、我收到相同的错误、netOpenHook 未定义、首先在_pem4f.oem4f 文件中引用。

    [/报价]

    尊敬的 Siddhi:

     我认为您至少在链接器命令文件中添加 NDK 库后进行了编译。 现在我感到困惑了。 如果您无法构建工程、如何将固件加载到闪存中?  

     在任何情况下,我会建议您从一个干净的 TcpEcho 项目开始,因为它被证明是开箱即用。 然后、您可以添加与 USB 相关的源代码。 你有试过吗?

       我也想给你们一个机会,我将在下星期离开办公室。 我的回复可能会出现延迟。

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

    尊敬的 Charles:

    我已成功将 tcpEcho 代码与我的独立工程集成。 工程正在编译、套接字通信按预期运行。 非常感谢您在整个流程中提供的指导和支持! 我真的很感激Slight smile

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

    尊敬的 Charles:

    我已成功将 tcpEcho 代码与我的独立工程集成。 工程正在编译、套接字通信按预期运行。 非常感谢您在整个流程中提供的指导和支持! 我真的很感激 Slight smile

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

    尊敬的 Siddhi:

     很高兴您的问题得到解决。 您想告诉我您是如何解决的? 是 NDK 库链接问题、还是您从 TcpEcho 开始并集成 USB 功能?  

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

    您好:

    不、我没有TcpEcho以该示例作为基础。

    我继续工作我的独立项目,并手动添加了必要的文件从TcpEcho例子,tcpEcho.c,tcpEchoHooks.c,EK_TM4C1294XL.c,,, EK_TM4C1294XL.hBoard.h。 之后、我通过.cfg文件配置了 NDK。

    但我遇到了一个问题、netOpenHook即 NDK 的函数 (tcpEchoHooks.c) 没有正确链接或引用。 要解决此问题、我必须将上述文件移动到inc 和src 文件夹之外。 由于netOpenHook预计会全局定义、因此将这些文件放置在内部inc src 阻止 NDK 正确链接它们。

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

    尊敬的 Siddhi:

     感谢您分享该解决方案、我相信它将在未来使许多人受益。