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/TM4C129ENCZAD:如何解决链接器错误-未解析的符号

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/578667/rtos-tm4c129enczad-how-to-resolve-linker-errors---unresolved-symbols

器件型号:TM4C129ENCZAD
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

您好!

  在过去几天里、我在 TI-RTOS 论坛上有一个论坛主题、试图解决我遇到的构建问题。CCS V7安装中包含的 uartecho 示例 (C:\TI_ccs\tirtos_tivac_2_16_01_14\packages\examples\source\uartecho)包含 uartecho.c 和相应的.cfg 文件。 我创建了一个新的空 CCS 工程、并将这两个文件添加到工程中。 我必须在 Properties-ARM 编译 器中为编译器添加一个包含路径、并将 board.h 文件添加到工程中、以完成过去的编译步骤(编译时自述文件会有所帮助)。 但是、编译后、问题控制台中列出了~100个未解决的符号错误。 另一个论坛有一个回复、让我转到几个未解决的错误。 内存空间问题也存在链接器错误。 另一个论坛告诉我要在 TM4C 组上打开一个新话题、那么在这里、我... (另一个论坛的历史是: e2e.ti.com/.../2123198

最后两个未解决的错误:

未解析的符号 SemPost、首先在 C:/TI_CCS/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/drivers/lib/drivers_tivaem4f 中引用

未解析的符号 ti_sysbios_KNL_Mailbox_create、首先在 C:/TI_ccs/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ti/drivers/lib/drivers_fivac_tivaknow.aem4f 中引用

内存空间错误:


"configPkg/linker.cmd"、第166行:错误#10099-D:程序将无法装入可用内存。 ".resetVecs"大小为0x3c、与".intvecs"重叠、大小为0x208 (第0页)的定位失败

在构建 CCS V7提供的设计示例时、我对所有这些障碍感到困惑-我在这里肯定会做些什么错?  无论如何、我都无法跟踪(我在哪里???) 上面注释的其余两个符号的.libs。 我不明白如何解决内存问题- uartecho.c 中的代码太少-如何耗尽内存?

此外、重复我在前一个论坛中提出的问题:

所有这些都会导致有关此 uartecho 示例的另一个问题。 从尝试链接的内容可以明显看出、这不仅仅是一个简单的串行接口、因为有 USB 和 WiFi 等参考 此示例使用 UART 端口0。 我收集到该端口可以作为 USB 转 UART 工作、对吗? 我的测试将在定制设计的电路板上进行、该电路板仅将端口0用作简单的串行接口- 2根导线、RX/TX。 那么、要以这种方式操作该端口、使用此示例设计、是否可以通过某种方式删除所有 USB/WIFI 内容-我在 uartecho.c 示例文件中看不到任何对此的引用、因此我想知道是否可以在没有所有这些额外内容的情况下构建它? 如果是、我是否可以通过删除 linker.cmd 文件中的文件列表(上面列出该文件的文章中显示的第一组行)来执行此操作?

感谢你能抽出时间并提供帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我打开了一个与上面提到的链接器内存空间错误相关的单独案例。 对于本论坛案例、问题仍然是、我无法确定库文件在何处、以解决上述剩余两个未解决的符号错误。 基本问题是、我是否在这里尝试做一些甚至没有意义的事情? 同样、我只想通过2线(RX/TX)接口对外部板进行简单的串行/UART 写入/读取。

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

    [引用 user="Erik skullerude">我对构建 CCS V7提供的设计示例所遇到的所有这些障碍感到困惑-我必须在这里做一些错误的事情?而不是创建新的 CCS 空项目并复制 uartecho.c 和相应的.cfg 文件、 尝试从 CCS Resource Explorer 导入 UART Echo 示例。

    应在工作区中创建项目、并正确设置所有文件和项目选项。 我使用 TI-RTOS 的用于 TivaC v2.16.00.08的 UART 回显示例进行了测试、并且该示例在编译时没有错误、并且成功运行。

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

    感谢您提供的有用建议。 但是、这并不能回答我脑海中刻录的一个更基本的问题、我希望在哪里跟踪库文件的位置? 例如、在本例中、我已在任何可以想到的地方搜索 SemPost (论坛搜索、我下载的 TI 文档(TI SYSBIOS UG、TI_TivaWare_Peripheral_Driver_Lib_UG、如何开发 SysBIOS 应用等)。 找不到任何有关此符号的提及。 我错过了哪些资源?

    最后、我是否应该将您的建议理解为、一般来说、我们应该从现有示例或其他正常工作的项目开始、而不是从头开始创建?

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

    您好 Erik、

    这可能不是对您的问题的直接回答、但可能会解释您遇到这么多问题的原因。 我自己刚刚加入 TM4C (我最近来自 Hercules 安全微控制器组)、我在 TM4C TI-RTOS 示例中也遇到了很多问题。 我最后学到的是、答案在本入门指南中: www.ti.com\lit\SPRUHU5 (以及上面 Chester 的好建议)。

    本入门指南参考了 CCS6、因此我发现与 CC7略有不同。 我打开 CCS7、在 Resource Explorer 中找到 TM4C TI-RTOS 的安装、而不是 App Center。 从菜单中选择"View"->"Resource Explorer"

    安装 TM4C TI-RTOS 后、您可以向下展开 EK-TM4C129XL 板的示例。 我选择了 UART 回波示例。 然后单击 Resource Explorer 窗口右上角的立方体。 这会将 UART Echo 示例导入您当前的工作区。 它设置所有必要的包含路径。 对我来说、它构建后没有任何错误或警告。

    导入工程后、我可以右键点击工程名称以查看工程编译设置。 在这里、我可以看到用于查找#include 文件的所有路径。 单击[...] 以查看扩展了宏名称的绝对路径。

    您可以看到链接器使用的所有库:

    另请注意、在使用 TI-RTOS 启动您自己的应用程序时、"Driver Examples"目录中有两个"空示例"非常有用。

    我希望这对您有所帮助。 如果没有其他东西、我学到了很多。