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.

[参考译文] TMS320C6670:为 C6670制作可引导二进制文件

Guru**** 2589300 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/641182/tms320c6670-making-bootable-binary-for-c6670

器件型号:TMS320C6670

您好!

在我们的系统中、我们通过以太网将 C6670连接到 Linux 主机 PC。 我们使用以太网启动过程。

长期以来、我们建立了一个过程、使用十六进制实用程序生成引导表、然后转换为适合引导的二进制文件。 查看 mcsdk_2_01_02_06\tools\boot_loader\examples\ethernet/Utilities\bconvert64x.c 和 mcsdk_2_01_02_06\tools\boot_loader\examples\ethernet/Utilities\bootpacket.c、我发现我可以自己进行这种转换。 首先、我们制作了简单的实用程序、用于将 ASCII 十六进制文件转换为二进制文件。 我怀疑提供了 bconvert64x.c 的奇特功能来处理不同的存储器组织以及可能的字节序转换。 由于我们的器件为32位、所有数据均为32位、因此我们不需要这种情况、并且我们始终在默认的小端模式下工作。 因此、我的实用程序仅包含将十六进制符号转换为二进制表示法、直到文件结束 我们也不使用 bootpacket.c、因为我们开发了自己的解决方案来重置 DSP、捕获其 ETh 就绪帧、拾取其 MAC 地址、并使用引导表片段编写和传输帧。 这对我们来说是完美的。

我不喜欢在处理过程中使用批处理文件来调用 TI 的十六进制实用程序、然后是我们的内部实用程序。 GCT 的机器到机器版本可能不同、批量查找正确 CGT 的自动化是我希望避免的工作。 同时、我在论坛中看到、有一种方法可以在 http://processors.wiki.ti.com/index.php/Projects_and_Build_Handbook_for_CCS#Pre_and_Post_Build_Steps 上生成二进制文件作为编译后处理步骤 、即"${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin "${BuildArtifactFileName}""${BuildArtifactFileBaseName}.bin""${CG_TOOL_ROOT}/bin/ofd2000 ""${CG_TOOL_ROOT"}/bin/hex2000 "/utils/tiobj2bin/mkhex4bin "。 当然可以

dsp.out
-a
-boot
-e _c_int00
-订购 L

ROM
{
ROM1:org = 0x0400、长度= 0x80000、memwidth = 32、romwidth = 32
文件={ dsp.btbl }

在此步骤中、我从开始接收引导表

//这是二进制02符号
$A0400、
0C 08 D0 40 00 44 60 0C 0B 18 28 04 53 01 07 53 38 00 00 00 3F 00

有趣的一点是、bconvert64实用程序会跳过前两行。 其次、我知道$A0400的重要性、但它与--bootorg 参数匹配。 我浏览了汇编语言用户指南和引导加载程序 UG、但没有加深我的理解、

问题2. 十六进制实用程序是否可以二进制形式提供输出?

问题3. 由十六进制实用程序生成的引导表中这两行的重要性是什么?

谢谢你。

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

    你好。 在十六进制实用程序中、有一 个未记录的选项-b (生成二进制映像)。 对我来说,这里比所有的动物园都要好

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

    您好 Sergey、

    感谢您的建议、我从来不知道该功能。

    我已经尝试过、它会生成二进制文件。 但是,DWORD 排序是不同的:

    原始工作:
    000000:0C 08 D0 60 00 45 B0
    -b 选项
    000000:60 D0 08 0C B0 45 00 

    我尝试使用 L/M 选项、它们没有效果。 对于以太网引导、我需要订购该文件。 您不知道另一个未记录的交换机会这样做吗?

    提前感谢。

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

    [引用用户="rlagic"]

    我尝试使用 L/M 选项、它们没有效果。

    [/报价]

    我想这就是为什么这个选项没有记录的原因。

    我想、您可以尝试在工程属性中启用十六进制实用程序:

    它将在"project folder/Debug"中生成所需的输出、然后运行自生成实用程序作为 postbuild 步骤来反转字节顺序。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、这正是我观察到的以及我现在所做的。
    正如您在第一条评论中提到的、建议使用的公用设施就像一个真正的动物园。 我可以猜测、可能需要它们来处理某些特定的目标。 对我来说、当我浏览实用程序源代码时、我发现我真正需要的唯一步骤是将十六进制转储到二进制文件、或者、根据您的建议、重新打包二进制文件。
    似乎没有其他方法可以实现、但我仍然希望 TI 的某个人来确认。
    再次感谢。