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/TMS470MF06607:生成的十六进制文件中缺少数据

Guru**** 2587345 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/786365/ccs-tms470mf06607-missing-data-in-generated-hex-file

器件型号:TMS470MF06607

工具/软件:Code Composer Studio

成功构建后、生成的十六进制文件缺少四个字节的数据。 这发生在.txt 段结束且.const 段开始的位置。

文本结尾和 const 开始的位置之间有一个字间隙。  

.out 文件的此位置填充有"00000000"、但十六进制文件在该位置没有任何数据。

请告诉我、是否有办法修复十六进制文件生成、以便在没有任何跳过位置的情况下生成连续数据。

使用的 CCS 版本:  5.2.0.00069  

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

    请在 ARM 汇编工具手册中搜索 标题为 "图像模式"和--fill 选项"的子章节。   

    谢谢、此致、

    乔治

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

    非常感谢你们的回应!!

    根据"图像"模式的说明、在特定范围内指定的所有空位置都将填充选项值。
    我无法为 ROM 提供固定的存储器位置、因为代码大小不断增加。
    我不想在结束后填充文件
    但我希望十六进制文件之间只有空的位置。

    例如、在我的当前案例中。 .txt 和.const 有一个间隙。 只能填补这个空白。
    您是否知道为什么这种行为对于少数软件版本和少数软件版本可能存在、而不存在。  
     
     

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

    我在 您的另一个主题中讨论的解决方案 是否也能解决这个问题?

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    否 另一个线程中的方法不是解决此问题的正确方法。

    我在.txt 之后使用了 Palign (8)而不是 Palign (4)、然后它似乎适用于当前软件、但我不理解这种行为。

    Palign (4)应该在工作。


    .txt 结束位置0x41844
    .const 起始位置为0x41848

    我想知道为什么4个字节的间隔。
    Palign (4)应该起作用、并且.const 起始位置应该为0x41844、因为它已经与4个字节对齐。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价用户="Kavya Ramachandra"]我不想在结束后填充文件[/报价]

    图像模式不能解决该问题。  假设是 ROMS 指令使用系统中 ROM 存储器的实际地址和大小。  将其填充到端部通常不是问题。

    [引用 user="Kavya Ramachandra"]您是否知道这种行为为什么在少数软件版本中存在,而在少数软件版本中则不存在。  [/报价]

    您指的是什么不同版本?  您的系统的不同版本?  或不同版本的 TI 工具链?

    谢谢、此致、

    乔治

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

    [引用 user="Kavya Ramachandra"].txt 结束位置0x41844
    .const 起始位置为0x41848

    我想知道为什么4个字节的间隔。
    Palign (4)应该起作用、并且.const 起始位置应该为0x41844、因为它已经与4个字节对齐。

    为了解释这一点、我需要复制它。  这是否组织为 CCS 项目?  如果是、请按照文章 Project Sharing 中所述对其进行压缩、并将该 zip 文件附加到您的下一篇文章中。

    谢谢、此致、

    乔治

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

    请提供请求的 CCS 项目。

    谢谢、此致、

    乔治

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

    尊敬的乔治:

    我很抱歉耽误你的答复。 我不确定是否可以在公共论坛中分享我公司的项目设置。

    还有一位来自 TI 的成员访问了我们的公司、因此我们在讨论。

    我们展示了项目设置、也没有从他那里报告任何问题。 大多数设置都是默认的建议设置。

    当我使用 palign (8)时、问题已解决。 我在互联网上找到了以下解释。

    "由于所有当前 Hercuels 器件上的 ECC 是在64位或8字节边界上计算的、因此放置在片上闪存中的所有数据和代码段也应与64位边界对齐。 此外、它们还应以64位边界结束、以确保整个段的长度为64位的倍数并完全初始化。 实现此目的的最简单方法是在所有输出段上使用 palign (8)在链接器命令文件中查找、该文件将放置在片上闪存中"

     

    我们使用的是 TMS470、我相信它也是 Hercuels 器件。 这可能是对为什么应使用8字节填充的解释。

    访问过的 TI 员工 尚未确认我的这一点。

    谢谢、此致、

    Kavya