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.

[参考译文] J721EXSOMXEVM:使用 tiarmhex.exe 文件将 BL31.elf 转换为 RPRC 时出错

Guru**** 2393345 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1490068/j721exsomxevm-error-while-converting-the-bl31-elf-to-rprc-using-the-tiarmhex-exe-file

器件型号:J721EXSOMXEVM

工具与软件:

您好!

  Im 尝试使用"tiarmhex.exe"使用命令将 ATF elf 文件转换为 RPRC 格式:

"C:\ti\ti-processor-sdk-rtos-j721e-evm-10_00_00_05\ti-cgt-armllvm_3.2.rts\bin\intel tiarmhex.exe—intel bl31.elf -datawidth 8 -memwidth 8 -romwidth 8 --outfile=BL31.hex"

但我得到一个错误说:  

   "内部错误: 出现内部不一致并中止。

请在下面找到图片。

谢谢!

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

    更正了我的声明、将.elf 或.bin 转换为.hex 文件时出现上述错误...我们使用的是"ti-processor-sdk-linux-adas-j721e-evm-10_01_00_04-linux-x86-install"

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

    您好 Baswaraj、

    只有 bl31.bin 存在上述问题、或者其他二进制文件也存在此问题?  

    此致、

    基尔西  

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

    感谢您发送编修 其他二进制文件运行良好...我们已尝试使用"tiimage_converter.bat"等其他命令、我们能够生成一个空的.rprc、其提示"bl31.elf 不是有效的目标文件"。 我们在使用 ATF 编译时也观察到了同样的错误。

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

    您好 Baswaraj、

    我能够重现此问题:

    ./tiarmhex --intel bl31.elf --datawidth 8 -memweidth 8 --outfile=bl31.hex
    tiarmhex:../../master/OBJEDIT04/of_file.c:1265:静态常量字符* OFE::object_file::simple_machine_name (OFE:of_machine):断言`0'失败。

    内部错误:./tiarmhex 内部不一致并中止

    这是由 TI 十六进制转换器中的缺陷导致的。
    TI 客户支持可能会建议一种权变措施来避免这种情况。

    升级到编译器的最新版本可能会解决此问题。

    通过 E2E 支持论坛联系 TI、网址为 http://e2e.ti.com

    我们需要看到整个错误消息以及一个完整、可重现的消息
    包含所有命令行选项的测试用例。

    我将在内部进行检查并重新了解这一点。

    -基尔西

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

    您好  Baswaraj、

    通常执行以下操作:

    我们从 Linux SDK 获取 bl31.bin。
    然后、我们使用 gcc 编译器将 bl31.bin 转换为 bl31.elf。
    然后、我们使用 out2rprc.exe 将 bl31.elf 转换为 bl31.rprc。
    我们使用 bl31.rprc 来生成多核 image1

    为什么需要十六进制?

    -基尔西

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

    您好、Keerthy、

    很抱歉我在度假时的回复出现延迟、我们尝试了.elf 并面临同样的问题。

    您能否告诉我要使用的步骤或命令、以便我在我使用正确的命令时自行检查。

    谢谢!

    Baswaraj

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

    您好!

    将.elf 转换为、rprc 和多核的步骤在下面的链接中介绍

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j721s2/10_01_00_04/exports/docs/pdk_j721s2_10_01_00_25/docs/userguide/j721s2/boot/boot_k3.html#compiling-appimage-that-can-be-loaded-by-sbl

    对于 Windows 和 Linux 均提及此内容。 请看一遍。

    此致

    Tarun Mukesh