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.

[参考译文] TMS320F280049:rts2800_fpu32_fast_补充.lib:错误:正在创建输出段"FPUmathTables"未使用 SECTIONS 规范

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1255841/tms320f280049-rts2800_fpu32_fast_supplement-lib-error-creating-output-section-fpumathtables-without-a-sections-specification

器件型号:TMS320F280049
主题中讨论的其他器件:C2000WARE

您好!

我试图在我的项目中使用 C2000Ware 5.0中的 rts2800_fpu32_fast_complement.lib 来加速 logf ()计算、但得到的消息是"error:正在创建没有 SECTIONS 规范的输出段"FPUmathTables"。

很遗憾、我在 FPUmathTables 中找不到任何280049 cmd 文件。

有针对28001x、28002x、28003x 的 cmd 文件。

我的问题是:

280049是否在 ROM 中具有用于 logf()的 FPUmathTables?

如果是:它们位于何处?

如果否:我必须将它们添加到闪存中、然后可能还要复制到 RAM? 它在哪里描述?

是否有任何可用作参考的链接器命令文件?

提前感谢、

斯蒂芬

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

    Stephan、您好!

    它在哪里描述?

    是否有任何可用作参考的链接器命令文件?

    [/报价]

    您可以参阅位于 C2000Ware_5_00_00_00\libraries\math\FPUfastRTS\c28\examples 中的 FPUfastRTS 示例。 我已经对此进行了测试、只要您在命令链接器文件中适当调整存储器部分的名称、就没有错误。

    280049是否在 ROM 中具有用于 logf()的 FPUmathTables?

    如果是:它们位于何处?

    [/报价]

    我会将此问题转交给引导 ROM 专家。

    此致、

    阿米尔·奥马尔

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

    尊敬的 Omer Amir:

    我已经研究了示例、迁移存储器部分应该很容易。

    我不理解的是 ROMTABLES 的定义位置。

    我将等待引导 ROM 专家。

    此致、

    斯蒂芬

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

    是否有关于 ROMTABLES 定义位置的更新?

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

    仍然没有可用的引导 ROM 专家???

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

    Stephan、您好!

    很抱歉我的答复出现延迟。

    好的、下面是几个问题:

    1. 您可以尝试将其添加到 SECTIONS{}下的 CMD 文件中:"FPUmathTables:> FLASH_BANK0_SEC4"?  

    2.当我尝试在没有 CMD 编辑的情况下进行构建时,我仍然可以在映射文件中看到表。 您能检查您的映射文件吗?

    3. logf()是 math.h 库的一部分,将按照链接器 CMD 文件放置在您的标准代码空间中。 您是否在寻找除此内容以外的其他内容?

    -Kedar

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

    你好、Kedar、

    让我尝试解释一下:
    我们在时间关键型环境中使用 logf(),因此我们不想使用 rts2800_fpu32.lib 中的默认 logf(),它需要大约420个周期。
    这就是使用 rts2800_fpu32_fast_补充.lib 的原因、该方法只需51个周期。
    我们是通过专用的 makefile (GNU make)而不是 CCS 进行构建的。

    关于您的问题:
    1. 使用 rts2800_fpu32_fast_补充.lib 并将 FPUmathTables 添加到 cmd 文件(闪存)时、建立此项目。
       我们得到了类似
       .text     0   00082c20 00006c2a        
                     000880d0   00000038 rts2800_fpu32_fast_补充    .lib:log_f32.obj (.text)
       FPUmathTables
       *         0   0008becc   0000018e     
                         0008becc   000000d0    rts2800_fpu32_FAST_补充.lib:Logtable_F32.obj (FPUmathTables)
                         0008bf9c   000000be                                      :expectable_F32.obj (FPUmathTables)
       一切正常、但它需要72个周期、而不是预期的51个周期。
    2. 当使用 rts2800_fpu32_fast_补充.lib 而不向 cmd 文件添加 FPUmathTables 时、我们得到
       错误:在没有 SECTIONS 规范的情况下创建输出段"FPUmathTables"、
       不会生成输出文件。
    3. 当使用 rts2800_fpu32.lib 中的默认 logf()时,得到的结果类似于
                     000854bc   0000012a rts2800_fpu32.lib    :e_logf.obj (.text)
       且执行时间为420个周期。

    对于许多其他控制器、我找到具有

    内存
    {
    第0页:
       FPUBLES    :origin = 0x3FD860、length = 0x0006A0
      ...


    部分
    {
            FPUmathTables   : load = FPUTABLES ,   page = 0
            ...


    那么、我的问题是28004x 是否也在 ROM 中具有 FPUTABLES、如果是、在哪里。

    此致、
    斯蒂芬

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

    我在此处找到一个示例:
    \\C2000Ware_5_00_00_00\libraries\math\FPUfastRTS\c28\examples\log_f32

    您能看到这是否对您有用吗? 它来自 C2KWare。

    -Kedar

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

    嗯、我看到适用于以下项目的 cmd 文件:

    f280013x
    f280015x
    f2838x
    f28003x
    f28002x

    但 f28004x 没有...

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

    此问题仍未解决...

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

    你好、Stephan。

    我会向内部团队核实这一点。 但要解除阻止、您只需 在所选 CMD 文件的 MEMORY{}和 SECTIONS{}下添加相应的行、然后在链接器选项中链接 FPUfastRTS 库。

    -Kedar

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

    你好、Kedar、

    这是我已经完成的操作、它可以使用闪存中的 FPUmathTables (花费比预期更多的周期)。

    请回答剩余问题
    "280049是否在 ROM 中具有用于 logf()的 FPUmathTables? 如果是:它们位于何处?"、
    我将等待您的内部团队检查结果。

    此致、

    斯蒂芬

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

    你好、Kedar、

    您是否最终让内部团队检查结果?

    -Stephan

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

    Stephan、您好!

    很抱歉耽误你的时间。 logf()不是 BootROM 的一部分。 BootROM 包含与此处库使用的数学库相关的表: C2000Ware_5_00_00_00\libraries\boot_rom\f28004x\revB\rom_symbol_libs\rom_api

    -Kedar