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.

[参考译文] TMS320F28388S:将代码从目标文件链接到 RAM 中运行时出现错误#10008-D

Guru**** 2529320 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1204564/tms320f28388s-error-10008-d-when-linking-code-from-object-file-to-run-in-ram

器件型号:TMS320F28388S

您好!

我已经在不同的 C++函数之前使用了 pragma CODE_SECTION 从闪存加载代码并在 RAM 中执行。 工作正常。 现在、我将尝试使用自动生成的 C++文件执行相同的操作。 此自动生成的文件没有 pragma、因此我会尝试通过.cmd 来向链接器指示此 C++文件将 从闪存加载并在 RAM 中执行。 这是.cmd:

CpuRamProg 部分用于  CODE_SECTION pragma、ModelProg 部分是自动生成的 C++文件。

链接器返回此错误:

"../F2838x/Cmd/f2838x_flash_lnk_cpu1.cmd"、第97行:错误#10008-D:找不到文件"CharacterationModel.obj"
错误#10010:链接过程中遇到错误;未生成"FW-Projet.out"。

但.map 文件包含 有关 ModelProg 部分的信息

建模程序
* 0 000be000 00001055运行 ADDR = 0000d000
  000be000 00000f69 FeaturesModel.obj (.text:_STEP_26CharacteristationModelClassF18InputPeripheralBus15InputCommandBusP9OutputBus)
  000bef69 0000004f CharacterationModel.obj (.text:_rt_remf__FfT1)
  000befb8 00000049 CharacterationModel.obj (.text:_CharacterationModel_ApplyCharacterization__26CharacterationModelClassFPCfPf)
  000bf001 0000002b 特性模型.obj (.text:_rt_roundf__FF)
  000bf02c 0000001f CharacterationModel.obj (.text:_initialize__26CharacterationModelClassFv)
  000bf04b 0000000a CharacterationModel.obj (.text:__CT__26CharacterationModelClassFv)

因此、 我可以从.obj 文件在 RAM 中运行一些代码吗? 为什么链接器输出具有有关.obj 文件的信息、但返回了错误10008-D?

我将 CCS 11.0.0.00012与编译器版本 v21.6.0.LTS 一起使用

谢谢。

C·克劳德

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

    为了帮助我确定发生了什么、请提交两个文件。

    一个文件是完整工程构建的日志。   请重新编译整个项目。  实现该操作的一种方法是右键点击工程名称并进行选择 重新生成项目 。  然后将"Console"(不是"Problems")视图的内容保存到文本文件。  使用名为的图标 复制构建日志

    另一个文件链接器命令文件  f2838x_flash_lnk_cpu1.cmd

    请将这两个文件都放入一个 zip 文件中、并 将其附加到您的下一个帖子中。

    谢谢。此致、

    -George.

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

    感谢您的帮助。  这是 cmd 文件和构建日志。

    e2e.ti.com/.../cmd_5F00_BuildLog.zip

    C·克劳德

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

    很遗憾、我无法重现此问题。   

    我或许能够以其他方式重现问题。  您是否有可能压缩所有这些文件?

    "../F2838x/Cmd/f2838x_flash_lnk_cpu1.cmd"
    "../F2838x/Cmd/f2838x_Registers_cpu1.cmd"
    "./Application/Controller/Controller.obj"
    "./Application/Controller/Factory/FactoryController.obj"
    "./Application/Factory/FactoryApplication.obj"
    "./Application/Runner.obj"
    "./Application/main.obj"
    "./Application/SystemStates/ConfigurationState.obj"
    "./Application/SystemStates/RunningState.obj"
    "./Application/SystemStates/Factory/FactorySystemStateMachine.obj"
    "./Exonetik/ErrorCodes.obj"
    "./Exonetik/Utils/Compiler/New.obj"
    "./Exonetik/Utils/Compiler/PureVirtual.obj"
    "./Exonetik/Utils/ConversionTool.obj"
    "./Exonetik/Utils/Lookup.obj"
    "./Exonetik/Utils/MathTool.obj"
    "./Exonetik/Utils/Memory.obj"
    "./Exonetik/Utils/Register.obj"
    "./Exonetik/Utils/StateManager.obj"
    "./F2838x/Configurations/F2838x_ADCConfiguration.obj"
    "./F2838x/Configurations/F2838x_DACConfiguration.obj"
    "./F2838x/Configurations/F2838x_DIOConfiguration.obj"
    "./F2838x/Configurations/F2838x_EtherCatConfiguration.obj"
    "./F2838x/Configurations/F2838x_PIEConfiguration.obj"
    "./F2838x/Configurations/F2838x_PWMConfiguration.obj"
    "./F2838x/Configurations/F2838x_SCIDConfiguration.obj"
    "./F2838x/Configurations/F2838x_SPIConfiguration.obj"
    "./F2838x/Configurations/F2838x_SystemConfiguration.obj"
    "./F2838x/Configurations/F2838x_TimersConfiguration.obj"
    "./F2838x/HAL/F2838x_ADC.obj"
    "./F2838x/HAL/F2838x_AsynchronousPWM.obj"
    "./F2838x/HAL/F2838x_CoilDriverPWMs3LevelsUpdater.obj"
    "./F2838x/HAL/F2838x_DAC.obj"
    "./F2838x/HAL/F2838x_DIO.obj"
    "./F2838x/HAL/F2838x_SCI.obj"
    "./F2838x/HAL/F2838x_SPI.obj"
    "./F2838x/HAL/F2838x_Timer.obj"
    "./F2838x/HAL/System.obj"
    "./F2838x/HAL/Factory/FactoryF2838x.obj"
    "./F2838x/Registers/F2838x_GlobalVariabledefs.obj"
    "./F2838x/Utils/F2838x_CodeStartBranch.obj"
    "./F2838x/Utils/F2838x_Device.obj"
    "./F2838x/Utils/F2838x_Utils.obj"
    "./Models/CharacterizationModel_ert_rtw/CharacterizationModel.obj"
    "./Models/ecat_config_xml_0.obj"
    "./Peripherals/CoilDriver.obj"
    "./Peripherals/EncoderAksIM2.obj"
    "./Peripherals/LEDManager.obj"
    "./Peripherals/MotorDriverEscon50_5.obj"
    "./Peripherals/MotorDriversExcon50_5Enabler.obj"
    "./Peripherals/PID.obj"
    "./Peripherals/Thermistor.obj"
    "./Peripherals/TimerTick.obj"
    "./Peripherals/VoltageDivider.obj"
    "./Peripherals/EtherCat/EtherCat.obj"
    "./Peripherals/EtherCat/EtherCatRegisters.obj"
    "./Peripherals/EtherCat/EtherCatVariables.obj"
    "./Peripherals/EtherCat/Factory/FactoryEtherCat.obj"
    "./Peripherals/Factory/FactoryPeripherals.obj"
    "./virtual_ios/CCS_code/Factory/FactoryVirtualIO.obj"
    "./virtual_ios/CCS_code/VirtualIO.obj"
    "../F2838x/Cmd/f2838x_Ethercat.cmd"
    "../F2838x/Lib/rts2800_fpu32.lib"
    "../F2838x/Lib/rts2800_fpu32_fast_supplement_coff.lib"

    所有这些路径都与与 CCS 编译配置相对应的目录相关、如所示  c:/git/CCSv11/fw-project404/Application_Output

    请将 zip 文件附加到您的下一篇帖子中。

    谢谢。此致、

    -George.

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

    再次感谢 George 的帮助。 这是要求提供的文件。

    e2e.ti.com/.../Project404.zip

    C·克劳德

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

    感谢您提交这么多文件。  我能够重现此行为。

    以下是一种可能的解决方案。  指定  f2838x_flash_lnk_cpu1.cmd ,添加 -图书馆 像这样...

       ModelProg :
       {
          --library=CharacterizationModel.obj(.text)
       }
    

    此外、将此选项添加到链接器选项中:  --search_path=./Models/CharacterizationModel_ert_rtw 。  要在 CCS 中添加该选项、请右键单击项目名称、然后选择  展示 Build Settings 。  在左侧路径中、浏览至  Build | C2000 Linker | File Search Path 。  将条目添加到  搜索路径 部件.   

    了解有关操作方法的详细信息 -- search_path -图书馆  请共同使用、搜索 C28x 汇编工具手册 以了解标题为" 改变库搜索算法"的子章节。  即使这些选项通常应用于库、它们的工作方式与查找不在当前目录中的目标文件相同。

    我以前无法重现此问题、因为它不会在更简单的构建中出现。  因为我无法解释这一点、所以我提交了 EXT_EP-11092。  我们欢迎您通过这个链接来了解这一点。

    谢谢。此致、

    -George.

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

    谢谢乔治,我已经尝试添加--库和添加-- search_path 单独,但它不起作用。 现在、我一起尝试了两种方法、它们都有效。

    C·克劳德