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.

[参考译文] CCS/TMS320F28034:有关 CCS 创建的 bin 文档的一些问题

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/952953/ccs-tms320f28034-some-questions-about-bin-document-created-by-ccs

器件型号:TMS320F28034

工具/软件:Code Composer Studio

尊敬的 TI 工程师,

我对 ccs7.3创建的 bin 文档有疑问。  

我添加了"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin /utils/tiobj2bin/mkhex4bin ""${BuildArtifactFileName}""${BuildArtifactFileBaseName}.bin""${CG_TOOL_ROOT}/bin/ofd2000 ""${CG_TOOL_ROOT}/bin/hex2000 ""${CCE_INSTALL_ROOT}"${CG_TOOL_ROOTH}-32"-TIFACT_DIOLPHIN -DIFEMORTNAME "-DIOTH "-DIOTH "。 并在链接器命令文件中添加 CMD 路径、如下图所示。

但是、下面显示的 bin 和 hex 之间存在差异。我的意思是数据不相同。请参阅100.7z。

e2e.ti.com/.../8524.100.7z

当我不添加 cmd 路径时、bin 和 hex 看起来是相同的。 请参阅101.7z。

e2e.ti.com/.../6866.101.7z

这样、我就无法通过 CCS 调试项目。 换言之、我无法连接下图所示的芯片。 和控制台、如"C28xx:加载程序:程序的一个或多个部分落入不可写的存储器区域。 这些区域实际上不会写入目标。 检查链接器配置和/或存储器映射。"

以下是 cmd 文档。 请参见 DM28035.7z。

e2e.ti.com/.../DM28035.7z

那么、我应该如何解决这个问题呢? 期待您的回复。

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

    第一个附件中的.bin 文件从许多用0填充的字节开始。  我假设避免这个0块将解决这个问题。  我不知道是什么原因导致了它。  要调查此问题、请将文件 Heric_bootload.out (由链接器创建的.out 文件)附加到下一个帖子。  就像处理其他附件一样、将其放入.7z 文件中。

    谢谢、此致、

    乔治   

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

    您好,

    George,感谢您的回复。 以下是输出文档。 Heric_bootload1是填充0的大 文件、而 Heric_bootload2是(我认为是)。

    e2e.ti.com/.../out.7z

    顺便说一下、 大纸槽文档不仅前面有0。 也在纸槽中间。 我尝试构建一个新项目并将.c、.h、cmd 和 lib 文档放入其中。 但它也会产生较大的容器。

    期待您的回复。

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

    当 tiobj2bin.bat 从 Heric_bootload1.out 创建二进制文件时,会看到这个诊断...

    警告:011400h 上的 Heric_bootload1.Out (DataBuff)部分落在未配置
    的存储器中(已跳过) 

    这是 因为十六进制实用程序 hex2000已归档了一个错误。  ID 为 EXT_EP-7767。  欢迎您通过该链接访问该链接。  我在该条目中添加了您的测试用例。  注意:测试案例等特定于客户的详细信息不会在错误的公开视图中披露。

    我认为问题从链接器命令文件  DM28035.cmd 中的此行开始...

    DataBuff :> RAML2 PAGE = 1、Fill = 0x00 

    删除填充= 0x00。  相反、请将系统启动代码更改为将此存储器范围归零。  该填充将 DataBuff 从未初始化的段更改为已初始化的段。  这可能不是您想要的。  我无法测试此更改是否能解决问题。  但我相信它会。

    谢谢、此致、

    乔治

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

    您好!

    George、感谢您的建议。 但我仍然有一些疑问。

    当我删除"fill=0x00"时、没有警告、因为"warning:section Heric_bootload1.Out (DataBuff) at 011400h falls in unconfigured.

       memory (skipped)"。 我不知道发生了什么。
    2.当我进入您提供的网页时,您说的错误我不知道如何修复。 请给我一些详细信息吗?
    3.我不清楚"将系统启动代码更改为将此存储器范围归零"。
    下面是通过删除 Fill = 0x00生成的新 OUT 文档。
    非常感谢您的 reply.e2e.ti.com/.../Heric_5F00_bootload.7z
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当 Fill = 0x00时、DataBuff 将成为已初始化的段。  初始化段由十六进制实用程序处理。  在初始化段 DataBuff 的特定情况下、十六进制实用程序会在处理此段时出错。  此错误导致出现有关未配置内存的诊断。  同样的错误也会导致.bin 文件开头的大0块。  当 Fill = 0x00不存在时、DataBuff 是一个未初始化的段。  十六进制实用程序会忽略未初始化的段。

    我假设正确执行程序需要 fill = 0x00。  如果将其删除、则需要以其他方式将对应于该段的存储器填充为零。  我建议您编写在系统启动期间执行的代码、以将该内存调零。 假设您知道变量或变量位于 DataBuff 部分。  这些是在程序开始主执行之前需要分配值0的值。

    谢谢、此致、

    乔治

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

    您好!

    George、感谢您的评论。 这个问题似乎已经解决。

    但对于其他项目、我还有另一个问题。 这张图片中的警告如下。  编译后处理步骤中使用了相同的命令。

    以下是.out 和 cmd 文档。 我不知道这些警告的原因 appeared.e2e.ti.com/.../002.7z

    期待您的回复。

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

    您好!

    乔治,我要为你说抱歉。 我 在 编译后处理步骤中使用了不同的命令。  

    当我纠正它时、似乎没有警告。  

    非常感谢您的帮助。