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/TM4C129ENCPDT:键入#10247-D、创建输出段".vtable"不带段规范

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/582321/rtos-tm4c129encpdt-type-10247-d-creating-output-section-vtable-without-a-sections-specification

器件型号:TM4C129ENCPDT
主题中讨论的其他器件:TM4C123

工具/软件:TI-RTOS

朋友们、您好!

 我从下载了 IR 远程代码  ,我在 Tiva ware 中进行了一些更改,这是我的项目 zip 文件 e2e.ti.com/.../4682.uartecho_5F00_EK_5F00_TM4C129EXL_5F00_TI_5F00_TivaTM4C129ENCPDT.zip  

 当我尝试构建此代码时、它会发出警告、如所示

          键入#10247-D 创建不带 SECTIONS 规范的输出段".VTable"    

 有人能帮我解决这个问题吗

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

    链接器警告中所说的是、正在创建段.vtable、但链接器命令文件没有 SECTIONS 规范来告诉它在哪里分配。 因此、第一件事是检查.cmd 文件以查看是否正确分配了.vtable。 请注意、TivaWare 中的.cmd 文件名的格式为" _ccs.cmd"。 由于您要将项目从 LM 移植到 TM4C、因此这可能是需要首先研究的领域。 如果您转到 CCS Resource Explorer、则可以导入各种基于 TI-RTOS 的 TM4C 示例、以在.cmd 文件上进行引用。 TivaWare 包还包含各种非基于 RTOS 的示例。 我想建议尽可能使用 TivaWare 中的现有工程、并根据需要添加或删除文件。 这将根据不同库的需要设置项目环境。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    蔡您好、
    以下是我所做的事情、

    1.从 Resource Explorer 导入 uartecho 工程。
    删除了 uartecho.c 文件并从给定 zip 文件中添加了 remote.c、remote.h、irdemo.c 文件。
    3.添加了#include "utils/uartstdio.c"并将 uartstdioinit 更改为 uartstidoconfig。

    仍然出现错误
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您首先注意到"警告"-现在您报告了"错误!"

    通常、代码将在出现"警告"的情况下运行-这样的功能极大地提高了您的故障排除能力... (即您可以将代码划分为部分代码-通过代码块进行测试/验证-这可能使您能够"清除"警告...)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉、这只是一条警告。 但代码没有运行,即使没有到达 main(),它也会退出。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想有一些未定义的东西或导致此警告的东西。 但我不知道缺少哪一个。 是 RTOS 的新手。 我在帖子中附加了我的项目 zip 文件。 如果可能、您能否仔细检查项目并指出错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../uartecho_5F00_EK_5F00_TM4C129EXL_5F00_TI_5F00_TivaTM4C129ENCPDT.rar

    我的更新项目 zip 文件。 仍然有警告。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    当您仅编译 uartecho 时,您是否收到任何警告? 我从 CCS7.1资源浏览器导入 uartecho、看不到任何警告。 我现在遇到了编译您的项目的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    vtable 段用于 interrupt.c 中的驱动程序库函数所使用的矢量表的副本 该表需要位于 RAM 中。 由于它不在您开始的 uartecho 项目中使用、因此它不在 EK_TM4C1294XL.cmd 文件中。  只需向链接命令文件的 SECTIONS 部分添加一行即可摆脱警告、并将.vtable 段正确地放置在 RAM 中。

    部分
    {
    .text:> FLASH
    .const:> FLASH
    .cinit:>闪存
    .pinit:> FLASH
    init_array:> FLASH
    
    .data :> SRAM
    .bss:> SRAM
    .sysmem:> SRAM
    .stack:> SRAM
    .vtable:> SRAM
    }
    

    我注意到其他一些需要注意的问题。 在 IR_Demo.c 中、第100-101行代码指定16MHz 晶体。 EK_TM4C1294XL 使用25MHz 晶体。 此外、在第59行的文件 remote.c 中、您调用函数 SysCtlClockGet ();此函数用于 TM4C123、对 TM4C1294器件无效。 您可以根据工作频率对其进行硬编码、也可以在初始化系统时钟时使用返回的值。

    除了.vtable 部分、您的问题是 IR 演示是为 TM4C123器件编写的、您需要注意时钟设置以将其更改为 TM4C1294。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们删除了中断函数并将其替换为 GPIO 中断。 现在工作正常、将返回出现的任何其他错误。 感谢你的帮助。